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的全选、反选(计算价格)的更多相关文章

  1. checkbox、全选反选,获取值

    <input id="Chk_All" onclick="CheckAll()" type="checkbox" /> < ...

  2. jquery控制动态生成的gridview中多列checkbox的全选反选及自动判断是否全选状态

    动态生成的Gridview的前台html代码如下:     <table class="usertableborder" cellspacing="0" ...

  3. jquery、js操作checkbox全选反选

    全选反选checkbox在实际应用中比较常见,本文有个不错的示例,大家可以参考下 操作checkbox,全选反选//全选 function checkAll() { $('input[name=&qu ...

  4. jquery、js全选反选checkbox

    操作checkbox,全选反选 //全选 function checkAll() { $('input[name="TheID"]').attr("checked&quo ...

  5. jQuery checkbox的全选与反选

    1:checkbox的全选与反选 js 代码 $("#cbAll").click(function(){ if($("#cbAll").is(":ch ...

  6. jQuery全选/反选checkbox

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. 通过VBA实现checkbox的全选和反选

    checkbox的全选和反选可以通过VBA来控制,这种设计常见于一些交互式报表,代码如下: 1.分成两个IF判断 Private Sub CheckBox1_Click()  ‘checkbox为总控 ...

  8. 表单javascript checkbox全选 反选 全不选

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...

  9. 关于Winform下DataGridView中实现checkbox全选反选、同步列表项的处理

    近期接手一个winform 项目,虽然之前有.net 的经验,但是对一些控件的用法还不是很熟悉. 这段时间将会记录一些在工作中遇到的坎坷以及对应的解决办法,写出来与大家分享并希望大神提出更好解决方法来 ...

  10. jquery中checkbox的全选与反选

    <!DOCTYPE html><html><head> <meta charset="utf-8" /> <title> ...

随机推荐

  1. CSS3_概述、发展史、模块介绍、与浏览器之间的关系

    一.CSS3概述和CSS3的发展史: 1.css3概述: CSS3是CSS2的升级版本,3只是版本号,它在CSS2.1的基础上增加了很多强大的新功能.    目前主流浏览器chrome.safari. ...

  2. OpenGL的glPushMatrix和glPopMatrix矩阵栈顶操作函数详解

    OpenGL中图形绘制后,往往需要一系列的变换来达到用户的目的,而这种变换实现的原理是又通过矩阵进行操作的.opengl中的变换一般包括视图变换.模型变换.投影变换等,在每次变换后,opengl将会呈 ...

  3. iphone SE 自带视频播放器要求的视频格式转换参数

  4. vitamio videoView 用隐藏除videoview的控件,并旋转屏幕方向实现的全屏功能,出现的画面不能填充满videoview(画面不完整)

    使用vitamio 封装的播放器 当切换到全屏模式,有时候会出现播放的画面不是全屏的情况, 全屏时,画面只占左半部分并出现拉伸效果,还显示不全,等等其他情况 阅读分析源代码发现是getHolder() ...

  5. java 多线程6(线程的·通讯)

    问题1: 为什么wait() 和 notify()是Object类中的方法,而不是Thread类中的方法呢? 答:因为锁是任意对象的所以要在Object类中,如果在Thread类中锁对象不是任意的了. ...

  6. [Spring] spring-session + JedisPool 实现 session 共享

    1.至少导入四个jar包: jedis spring-session spring-data-redis commons-pool2 2.bean配置 <?xml version="1 ...

  7. 经典排序算法---冒泡排序(Bubble Sort)

    原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换, 这样一趟过去后,最大或最小的数字被交换到了最后一位,然后再从头开始进行两两比较交换,直到倒数第二位时结束 void Bubble ...

  8. 《构建之法》第8、9、10章读后感和Sprint总结

    <构建之法>第8.9.10章读后感  第八章重点讲了需求分析,在一个项目中,需求分析是最基础也是最重要的,只有充分了解了用户需求,我们才不会走弯路,才能做出正确的规划,保证项目的进行是按照 ...

  9. SQL Server数据库(SQL Sever语言 CRUD)

    使用SQL Sever语言进行数据库的操作 常用关键字identity 自增长primary key 主键unique 唯一键not null 非空references 外键(引用) 在使用查询操作数 ...

  10. 500 TypeError: Cannot read property 'connect.sid' of undefined

    1:在写passport验证测试用例时,发现有几个引用中间件顺序的错误,检查发现,passport验证写的是session,在传错误信息的时候req.flash调用也需要用到session中间件,否则 ...