购物车、全选

时间:2019-03-19
本文章向大家介绍购物车、全选,主要包括购物车、全选使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

public class GouActivity extends Activity {

private ListView gou_listview;
private TextView title;
private CheckBox check_all;
private TextView zong;
private Button money;
private List<Shopping> list;
private MyBase adapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	setContentView(R.layout.activity_gou);
	//初始化组件
	title = (TextView) findViewById(R.id.text_title);
	gou_listview = (ListView) findViewById(R.id.gou_ListView);
	check_all = (CheckBox) findViewById(R.id.check_all);
	zong = (TextView) findViewById(R.id.text_zong);
	money = (Button) findViewById(R.id.btn_money);
	//更改标题
	title.setText("购物车");
	//接收传值
	Intent intent = getIntent();
	list = (List<Shopping>) intent.getSerializableExtra("list");
	//设置适配器
	adapter = new MyBase();
	gou_listview.setAdapter(adapter);
	//计算总价
	getTotal();
	//全选
	check_all.setOnCheckedChangeListener(new OnCheckedChangeListener() {
		
		@Override
		public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
			for (int i = 0; i < list.size(); i++) {
				list.get(i).setCheck(isChecked);
			}
			//重新计算总价
			getTotal();
			//刷新适配器
			adapter.notifyDataSetChanged();
		}
	});
}

private void getTotal() {
	double x=0;
	for (int i = 0; i < list.size(); i++) {
		if(list.get(i).isCheck()){
			double price = Double.parseDouble(list.get(i).getPrice());
			
			x+=price;
		}
	}
	zong.setText("总价:"+x+"元");
}

class MyBase extends BaseAdapter{

	@Override
	public int getCount() {
		// TODO Auto-generated method stub
		return list.size();
	}

	@Override
	public Object getItem(int position) {
		// TODO Auto-generated method stub
		return list.get(position);
	}

	@Override
	public long getItemId(int position) {
		// TODO Auto-generated method stub
		return position;
	}
	@Override
	public View getView(final int position, View convertView, ViewGroup parent) {
		final ViewHolder holder;
		if (convertView == null) {
			convertView = View.inflate(GouActivity.this, R.layout.shopp_myase, null);
			holder = new ViewHolder();
			holder.imageView = (ImageView) convertView.findViewById(R.id.ImageView);
			holder.text_name = (TextView) convertView.findViewById(R.id.text_name);
			holder.text_price = (TextView) convertView.findViewById(R.id.text_price);
			holder.box = (CheckBox) convertView.findViewById(R.id.CheckBox);
			convertView.setTag(holder);
		}else {
			holder = (ViewHolder) convertView.getTag();
		}
		//赋值
		holder.imageView.setImageResource(list.get(position).getImage());
		holder.text_name.setText("商品名称:"+list.get(position).getName());
		holder.text_price.setText("商品价格:"+list.get(position).getPrice());
		holder.box.setChecked(list.get(position).isCheck());
		//勾选条目内的复选框
		holder.box.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				boolean checked = holder.box.isChecked();
				list.get(position).setCheck(checked);
				//重新调用计算总价方法
				getTotal();
			}
		});
		return convertView;
	}
	class ViewHolder{
		ImageView imageView;
		TextView text_name,text_price;
		CheckBox box;
	}
}

}