checkbox的全选、反选(计算价格)
package com.baidu.jisuan;
import java.util.ArrayList;
import java.util.List;
import com.baidu.adapter.MyAdapter;
import com.baidu.adapter.MyAdapter.ViewHolder;
import com.baidu.vo.Goods;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.ListView;
import android.widget.TextView;
public class MainActivity extends Activity {
private ListView lv;
private int[] images;
private String[] prices;
private List<Goods> list;
private CheckBox all;
private CheckBox fan;
private MyAdapter myAdapter;
private TextView jiesuan;
int price = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
images = new int[] { R.drawable.ic_launcher, R.drawable.ic_launcher,
R.drawable.ic_launcher, R.drawable.ic_launcher,
R.drawable.ic_launcher, R.drawable.ic_launcher,
R.drawable.ic_launcher, R.drawable.ic_launcher,
R.drawable.ic_launcher, R.drawable.ic_launcher,
R.drawable.ic_launcher, R.drawable.ic_launcher,
R.drawable.ic_launcher, R.drawable.ic_launcher };
prices = new String[] { "123", "45", "34", "56", "67", "34", "12",
"123", "45", "34", "56", "67", "34", "12" };
init();
}
private void init() {
// 找到相应的控件
lv = (ListView) findViewById(R.id.lv);
all = (CheckBox) findViewById(R.id.all_check);
fan = (CheckBox) findViewById(R.id.all_fan);
jiesuan = (TextView) findViewById(R.id.text);
list = new ArrayList<Goods>();
for (int i = 0; i < images.length; i++) {
list.add(new Goods(images[i], prices[i], false));
}
myAdapter = new MyAdapter(MainActivity.this, list);
lv.setAdapter(myAdapter);
all.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
/*
* for(Goods temp:list){ temp.setIsbuy(isChecked); }
*/
price = 0;
if (isChecked) {
for (int i = 0; i < list.size(); i++) {
list.get(i).setIsbuy(true);
price += Integer.parseInt(list.get(i).getPrice());
}
} else {
for (int i = 0; i < list.size(); i++) {
list.get(i).setIsbuy(false);
}
}
myAdapter.notifyDataSetChanged();
jiesuan.setText("一共:"+price + ""+"元");
}
});
fan.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
/*
* for (Goods temp : list) { if (temp.getIsbuy()) {
* temp.setIsbuy(false); } else { temp.setIsbuy(true); } }
*/
//选中的话,则计算价格
price = 0;
if (isChecked) {
for (int i = 0; i < list.size(); i++) {
//判断如果选中的话,置为不选中,反之,置为选中
if (list.get(i).getIsbuy()) {
list.get(i).setIsbuy(false);
} else {
list.get(i).setIsbuy(true);
price += Integer.parseInt(list.get(i).getPrice());
}
}
} else {
for (int i = 0; i < list.size(); i++) {
if (list.get(i).getIsbuy()) {
list.get(i).setIsbuy(false);
} else {
list.get(i).setIsbuy(true);
price += Integer.parseInt(list.get(i).getPrice());
}
}
}
myAdapter.notifyDataSetChanged();
jiesuan.setText("一共:"+price + ""+"元");
}
});
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
ViewHolder viewholder = (ViewHolder) view.getTag();
viewholder.box.toggle();
list.get(position).setIsbuy(viewholder.box.isChecked());
if (viewholder.box.isChecked() == true) {
price += Integer.parseInt(list.get(position).getPrice());
} else {
price -= Integer.parseInt(list.get(position).getPrice());
}
jiesuan.setText("一共:"+price + ""+"元");
}
});
}
}
package com.baidu.adapter;
import java.util.List;
import com.baidu.jisuan.R;
import com.baidu.vo.Goods;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.ImageView;
import android.widget.TextView;
public class MyAdapter extends BaseAdapter{
Context context;
List<Goods> list;
public MyAdapter(Context context, List<Goods> list) {
// TODO Auto-generated constructor stub
this.context=context;
this.list=list;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return list.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
if(convertView==null){
convertView=convertView.inflate(context, R.layout.activity_item, null);
viewHolder=new ViewHolder();
viewHolder.image=(ImageView) convertView.findViewById(R.id.image);
viewHolder.price=(TextView) convertView.findViewById(R.id.price);
viewHolder.box=(CheckBox) convertView.findViewById(R.id.check);
convertView.setTag(viewHolder);
}else{
viewHolder=(ViewHolder) convertView.getTag();
}
viewHolder.price.setText(list.get(position).getPrice());
viewHolder.image.setImageResource(list.get(position).getImage());
viewHolder.box.setChecked(list.get(position).getIsbuy());
return convertView;
}
public class ViewHolder{
TextView text,price;
ImageView image;
public CheckBox box;
}
}
checkbox的全选、反选(计算价格)的更多相关文章
- checkbox、全选反选,获取值
<input id="Chk_All" onclick="CheckAll()" type="checkbox" /> < ...
- jquery控制动态生成的gridview中多列checkbox的全选反选及自动判断是否全选状态
动态生成的Gridview的前台html代码如下: <table class="usertableborder" cellspacing="0" ...
- jquery、js操作checkbox全选反选
全选反选checkbox在实际应用中比较常见,本文有个不错的示例,大家可以参考下 操作checkbox,全选反选//全选 function checkAll() { $('input[name=&qu ...
- jquery、js全选反选checkbox
操作checkbox,全选反选 //全选 function checkAll() { $('input[name="TheID"]').attr("checked&quo ...
- jQuery checkbox的全选与反选
1:checkbox的全选与反选 js 代码 $("#cbAll").click(function(){ if($("#cbAll").is(":ch ...
- jQuery全选/反选checkbox
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 通过VBA实现checkbox的全选和反选
checkbox的全选和反选可以通过VBA来控制,这种设计常见于一些交互式报表,代码如下: 1.分成两个IF判断 Private Sub CheckBox1_Click() ‘checkbox为总控 ...
- 表单javascript checkbox全选 反选 全不选
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...
- 关于Winform下DataGridView中实现checkbox全选反选、同步列表项的处理
近期接手一个winform 项目,虽然之前有.net 的经验,但是对一些控件的用法还不是很熟悉. 这段时间将会记录一些在工作中遇到的坎坷以及对应的解决办法,写出来与大家分享并希望大神提出更好解决方法来 ...
- jquery中checkbox的全选与反选
<!DOCTYPE html><html><head> <meta charset="utf-8" /> <title> ...
随机推荐
- hdu_3555 bomb
数位动态规划 数位动态规划是求解一个大区间[L, R]中间满足条件Q的所有数字的个数(或者和,或其他)的一种方法.它通过分析每一位上的数字,一般用 dp[len][digit][...] 来表 ...
- 提高PHP开发质量的36个方法(精品)
提高PHP开发质量的36个方法 林涛 发表于:2016-3-25 0:00 分类:26点 标签: 62次 1.不要使用相对路径 常常会看到: require_once('../../lib/some_ ...
- LinuxShell脚本攻略--第九章 管理重任
收集进程信息 $ ps PID TTY TIME CMD pts/ :: bash pts/ :: ps$ ps -f #-f 显示更详细的信息UID PID PPID C STIME TTY TI ...
- Python主文件路径和当前模块路径
主执行文件路径sys.argv[0] ...
- Tiny PXE Server简介
Tiny PXE Server简介Tiny PXE Server是一款小巧而功能强大的网启软件.支持DHCP TFTP HTTP BINL DNS等多个协议,支持grub4dos,pxelinux,i ...
- WEB网页插件 如何实现 选择上传图片路径 【高级问题】
发表于 2010-10-22 12:11 | |只看楼主 按键精灵程序里面的WEB网页插件 如何实现 选择上传图片路径 我想在上传图片的选框设置图片路径为 C:\fakepath\001. ...
- 关于MySQL回滚机制
在事务中,每个正确的原子操作都会被顺序执行,直到遇到错误的原子操作,此时事务会将之前的操作进行回滚.回滚的意思是如果之前是插入操作,那么会执行删 除插入的记录,如果之前是update操作,也会执行up ...
- jmeter 建立一个JMS主题测试计划
创建两个线程组和组 每一个到10迭代. 总消息线程(6)x(1消息) (重复10次)= 60消息. 建立测试计划,您将使用 以下元素: 线程组 , JMS的出版商 , JMS用户 , 图结果 . 一般 ...
- python 练习 13
#!/usr/bin/python # -*- coding: UTF-8 -*- l = [] for i in range(3): x = int(raw_input('integer:\n')) ...
- [Java] Java中List 去掉重复的值,并保持原先List顺序
private List<YourBean> removeDuplicate(List<YourBean> list) { Set<YourBean> set = ...