主布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="全选" android:id="@+id/checkall" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="总价:" android:id="@+id/btn_money" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/money" /> <ListView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/listview" ></ListView> </LinearLayout>
listview的布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content"> <CheckBox android:layout_width="40dp" android:layout_height="40dp" android:id="@+id/ischeck" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/goods_name" /> <Button android:layout_width="40dp" android:layout_height="40dp" android:id="@+id/btn_jian" android:text="-" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/goods_num" /> <Button android:layout_width="40dp" android:layout_height="40dp" android:id="@+id/btn_jia" android:text="+" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/goods_price" /> </LinearLayout>
Bean类的封装,
public class GoodsBean { private String goodsname; private int price; private int num; private boolean mycheck = false; public GoodsBean(String goodsname, int price, int num, boolean mycheck) { this.goodsname = goodsname; this.price = price; this.num = num; this.mycheck = mycheck; } public GoodsBean() { } public String getGoodsname() { return goodsname; } public int getPrice() { return price; } public int getNum() { return num; } public boolean isMycheck() { return mycheck; } public void setGoodsname(String goodsname) { this.goodsname = goodsname; } public void setPrice(int price) { this.price = price; } public void setNum(int num) { this.num = num; } public void setMycheck(boolean mycheck) { this.mycheck = mycheck; } @Override public String toString() { return "GoodsBean{" + "goodsname='" + goodsname + '\'' + ", price=" + price + ", num=" + num + ", mycheck=" + mycheck + '}'; } }
适配器里的
public class MyListAdapter extends BaseAdapter { Context context; ArrayList<GoodsBean> list; TextView textView; public MyListAdapter(Context context, ArrayList<GoodsBean> list,TextView textView) { this.context = context; this.list = list; this.textView = textView; } @Override public int getCount() { return list.size(); } @Override public Object getItem(int i) { return list.get(i); } @Override public long getItemId(int i) { return i; } @Override public View getView(final int i, View view, ViewGroup viewGroup) { final ListViewHolder viewHolder; if(view == null){ view = LayoutInflater.from(context).inflate(R.layout.item_list,viewGroup,false); viewHolder = new ListViewHolder(); viewHolder.price = (TextView) view.findViewById(R.id.goods_price); viewHolder.name = (TextView) view.findViewById(R.id.goods_name); viewHolder.num = (TextView) view.findViewById(R.id.goods_num); viewHolder.btn_jia = (Button) view.findViewById(R.id.btn_jia); viewHolder.btn_jian = (Button) view.findViewById(R.id.btn_jian); viewHolder.checkBox = (CheckBox) view.findViewById(R.id.ischeck); view.setTag(viewHolder); }else{ viewHolder = (ListViewHolder) view.getTag(); } viewHolder.name.setText(list.get(i).getGoodsname()); viewHolder.price.setText(list.get(i).getPrice()+""); viewHolder.num.setText(list.get(i).getNum()+""); viewHolder.checkBox.setChecked(list.get(i).isMycheck()); viewHolder.btn_jia.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { int nownum = list.get(i).getNum(); list.get(i).setNum(++nownum); changeMoney(); notifyDataSetChanged(); } }); viewHolder.btn_jian.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if(list.get(i).getNum()==0){ list.get(i).setNum(0); }else{ int nownum = list.get(i).getNum(); list.get(i).setNum(--nownum); } changeMoney(); notifyDataSetChanged(); } }); viewHolder.checkBox.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if(list.get(i).isMycheck()==false){ list.get(i).setMycheck(true); }else{ list.get(i).setMycheck(false); } changeMoney(); notifyDataSetChanged(); } }); return view; } static class ListViewHolder{ CheckBox checkBox; Button btn_jian,btn_jia; TextView name,num,price; } public void changeMoney(){ int allmoney = 0; for(int i = 0 ; i < list.size();i++){ if(list.get(i).isMycheck()==true){ allmoney+=list.get(i).getPrice()*list.get(i).getNum(); } } textView.setText(allmoney+""); } }
主页面调用
public class Fragment2 extends Fragment { ListView listView; View view; MyListAdapter adapter; ArrayList<GoodsBean> list; CheckBox checkall; Button btn_money; TextView money; boolean isor = false; int allmoney=0; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { view = inflater.inflate(R.layout.item_fragment2,null); inView(); inData(); return view; } public void inView(){ listView = (ListView) view.findViewById(R.id.listview); checkall = (CheckBox) view.findViewById(R.id.checkall); btn_money = (Button) view.findViewById(R.id.btn_money); money = (TextView) view.findViewById(R.id.money); } public void inData(){ list = new ArrayList<GoodsBean>(); for(int i = 0 ; i < 10 ; i++){ list.add(new GoodsBean("手机",100,1,false)); } adapter = new MyListAdapter(getActivity(),list,money); listView.setAdapter(adapter); checkall.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if(isor == false){ for(int i = 0 ; i < list.size(); i++){ list.get(i).setMycheck(true); } isor = true; }else if(isor == true){ for(int i = 0 ; i < list.size(); i++){ list.get(i).setMycheck(false); } isor = false; } adapter.notifyDataSetChanged(); } }); btn_money.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { allmoney = 0; for(int i = 0 ; i < list.size();i++){ if(list.get(i).isMycheck()==true){ allmoney+=list.get(i).getPrice()*list.get(i).getNum(); } } money.setText(allmoney+""); } }); } }