//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;
}
}