package com.example.fragment;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import android.content.Context;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import com.example.db.Gooddao;
import com.example.db.Shop;
import com.example.test.R;
import com.nostra13.universalimageloader.core.ImageLoader;
public class Fragment3 extends Fragment implements OnClickListener {
private Gooddao dao;
private ListView shoplist;
private static ArrayList<Shop> datas = new ArrayList<Shop>();
private CheckBox checks;
private Shoplistada checkAdapter;
private Button delete;
private TextView bianji;
private LinearLayout shop_la;
private TextView wancheng;
private double sum;
private TextView zongji;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = View.inflate(getActivity(), R.layout.fragment3, null);
shoplist = (ListView) view.findViewById(R.id.shoplist);
delete = (Button) view.findViewById(R.id.delete);
shop_la = (LinearLayout) view.findViewById(R.id.shop_la);
bianji = (TextView) view.findViewById(R.id.bianji);
checks = (CheckBox) view.findViewById(R.id.checks);
wancheng = (TextView) view.findViewById(R.id.wancheng);
zongji = (TextView) view.findViewById(R.id.zongji);
delete.setOnClickListener(this);
wancheng.setOnClickListener(this);
// 点击编辑
bianji.setOnClickListener(this);
// 全选
checks.setOnClickListener(this);
dao = new Gooddao(getActivity());
startTo();
return view;
}
@Override
public void onResume() {
// TODO Auto-generated method stub
super.onResume();
startTo();
}
private void startTo() {
datas = dao.select();
checkAdapter = new Shoplistada(getActivity(), datas);
shoplist.setAdapter(checkAdapter);
checkAdapter.notifyDataSetChanged();
}
@Override
public void onClick(View arg0) {
switch (arg0.getId()) {
case R.id.checks:
boolean flag = checks.isChecked();
for (int i = 0; i < checkAdapter.getSelect().size(); i++) {
checkAdapter.getSelect().set(i, flag);
}
checkAdapter.notifyDataSetChanged();
sum = 0;
if (flag == true) {
for (int i = 0; i < checkAdapter.getSelect().size(); i++) {
sum = sum + datas.get(i).getShop_price()
* datas.get(i).getNum();
DecimalFormat df = new DecimalFormat("###.00");
zongji.setText("¥" + df.format(sum));
checkAdapter.getSelect().set(i, flag);
}
} else if (flag == false) {
for (int i = 0; i < checkAdapter.getSelect().size(); i++) {
sum = 0;
zongji.setText("¥" + sum);
checkAdapter.getSelect().set(i, flag);
}
}
checkAdapter.notifyDataSetChanged();
break;
case R.id.jiesuan:
break;
case R.id.delete:
sum = 0;
boolean fg = checks.isChecked();
if (fg == true) {
sum = 0;
for (int i = 0; i < checkAdapter.getSelect().size(); i++) {
zongji.setText("¥" + sum);
checkAdapter.getSelect().set(i, fg);
}
checks.setChecked(false);
}
if (checkAdapter.linkedList.contains(true)) {
List<String> sl = new ArrayList<String>();
for (int i = 0; i < checkAdapter.linkedList.size(); i++) {
if (checkAdapter.linkedList.get(i) == true) {
sl.add(datas.get(i).getId());
}
}
zongji.setText("¥" + sum);
dao.delete(sl);
checkAdapter.linkedList.clear();
startTo();
} else {
Toast.makeText(getActivity(), "请去选择商品!", 0).show();
}
break;
default:
break;
}
}
public class Shoplistada extends BaseAdapter {
private ImageView good_img;
private TextView good_name;
private TextView good_shop;
private TextView num;
private Context context;
private ArrayList<Shop> datas;
private LinkedList<Boolean> linkedList = new LinkedList<Boolean>();
public Shoplistada(Context context, ArrayList<Shop> datas) {
this.datas = datas;
this.context = context;
// 初始化
for (int i = 0; i < datas.size(); i++) {
getSelect().add(false);
}
}
private List<Boolean> getSelect() {
return linkedList;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return datas.size();
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(final int position, View arg1, ViewGroup arg2) {
View view = View.inflate(context, R.layout.shoplist, null);
final CheckBox ck = (CheckBox) view.findViewById(R.id.ck);
good_img = (ImageView) view.findViewById(R.id.sgood_img);
good_name = (TextView) view.findViewById(R.id.sgood_name);
good_shop = (TextView) view.findViewById(R.id.sgood_shop);
num = (TextView) view.findViewById(R.id.num);
ImageLoader.getInstance().displayImage(
datas.get(position).getGoods_img(), good_img);
good_name.setText(datas.get(position).getGoods_name());
good_shop.setText("¥" + datas.get(position).getShop_price());
num.setText("数量:" + datas.get(position).getNum());
ck.setChecked(linkedList.get(position));
ck.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (ck.isChecked() == true) {
sum = sum + datas.get(position).getShop_price()
* datas.get(position).getNum();
DecimalFormat df = new DecimalFormat("###.00");
zongji.setText("¥" + df.format(sum));
} else if (ck.isChecked() == false) {
sum = sum - datas.get(position).getShop_price()
* datas.get(position).getNum();
DecimalFormat df = new DecimalFormat("###.00");
zongji.setText("¥" + df.format(sum));
}
linkedList.set(position, !linkedList.get(position));
if (linkedList.contains(false)) {
checks.setChecked(false);
} else {
checks.setChecked(true);
}
notifyDataSetChanged();
}
});
return view;
}
}
}
御泥坊的购物车单选、全选,改变数量
最新推荐文章于 2023-09-19 08:52:11 发布