全选反选

来源:互联网 发布:share.js 编辑:程序博客网 时间:2024/05/30 22:47

//Bean需要自己写

public class MainActivity extends AppCompatActivity implements View.OnClickListener {



    private Button quanxuan;
    private Button fanxuan;
    private Button quanbuxuan;
    private ListView listview;
    private MyListAdapter adapter;
    private Button jiesuan;
    private TextView tv_sum_price;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        listview = (ListView) findViewById(R.id.lv);
        quanxuan = (Button) findViewById(R.id.quanxuan);
        fanxuan = (Button) findViewById(R.id.fanxuan);
        quanbuxuan = (Button) findViewById(R.id.quabuxuan);
        jiesuan = (Button) findViewById(R.id.jiesuan);
        tv_sum_price = (TextView) findViewById(R.id.tv_sum_price);


        quanxuan.setOnClickListener(this);
        fanxuan.setOnClickListener(this);
        quanbuxuan.setOnClickListener(this);
        jiesuan.setOnClickListener(this);
        initData();
        //设置适配器
        adapter = new MyListAdapter(list, getApplication());
        listview.setAdapter(adapter);
    }


    ArrayList<Bean> list = new ArrayList<>();


    private void initData() {
        for (int i = 0; i < 20; i++) {
            list.add(new Bean("商品" + i, null,i+1, false));
        }
    }


    @Override
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.quanxuan:
                for (int i = 0; i < list.size(); i++) {
                    list.get(i).setFlag(true);
                }
                adapter.notifyDataSetChanged();
                ;
                break;
            case R.id.fanxuan:
                for (int i = 0; i < list.size(); i++) {
                    list.get(i).setFlag(!list.get(i).isFlag());
                }
                adapter.notifyDataSetChanged();
                break;
            case R.id.quabuxuan:
                for (int i = 0; i < list.size(); i++) {
                    list.get(i).setFlag(false);
                }
                adapter.notifyDataSetChanged();
                break;
            case R.id.jiesuan:
                int sum=0;
                for (int i = 0; i < list.size(); i++) {
                    if (list.get(i).isFlag()){
                        sum=sum+list.get(i).getPrice();
                    }
                }
                setMoney();
                break;
        }
    }


    private void setMoney() {
        int sum=0;
        for (int i=0;i<list.size();i++){
            if (list.get(i).isFlag()){
                sum=sum+list.get(i).getPrice();
            }
        }
        tv_sum_price.setText("总价格"+sum);

    }

}

//这是适配器

public class MyListAdapter extends BaseAdapter {
    private ArrayList<Bean> list;
    private Context context;


    public MyListAdapter(ArrayList<Bean> list, Context context) {
        this.list = list;
        this.context = context;
    }


    @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 ViewHoder vh;
        if (view == null) {
            view = View.inflate(context, R.layout.list_item, null);
            vh = new ViewHoder();
            vh.cb_item = (CheckBox) view.findViewById(R.id.cb_item);
            vh.tv_item = (TextView) view.findViewById(R.id.tv_item_name);
            vh.tv_price = (TextView) view.findViewById(R.id.tv_item_price);
            view.setTag(vh);
        } else {
            vh = (ViewHoder) view.getTag();
        }
        vh.tv_item.setText(list.get(i).getName());
        vh.cb_item.setChecked(list.get(i).isFlag());
        vh.tv_price.setText(list.get(i).getPrice() + "");


        vh.cb_item.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (vh.cb_item.isChecked()) {
                    list.get(i).setFlag(true);
                } else {
                    list.get(i).setFlag(false);
                }
            }
        });


        return view;
    }


    class ViewHoder {
        TextView tv_item;
        TextView tv_price;
        CheckBox cb_item;
    }
}

0 0
原创粉丝点击