全选,反选,全不选以及计算价格

代码如下:实现购物车类似的功能,分为两个class,两个xml:

activity_main.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
  <LinearLayout
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      >
    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="全选"
        android:layout_weight="1"
        />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="反 选" />

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="全不选"
         android:layout_weight="1"
        />
</LinearLayout>
<TextView
    android:id="@+id/price"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    />
<ListView
    android:id="@+id/listveiw"
    android:layout_width="match_parent"
    android:layout_height="match_parent"

    ></ListView>

</LinearLayout>

MainActivity.class主页面,重要代码存在处:

package com.example.day_all_button;

import java.util.ArrayList;
import java.util.List;

import com.example.day_all_button.Adper.ViewHolder;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;

public class MainActivity extends Activity implements OnClickListener{

     private Button button1;
        private Button button2;
        private Button button3;
        private ListView listView;
        private List<Good> list;
        private TextView price;
        private int num=0;
        private int pric=0;
        private BaseAdapter adapter;
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
          button1 = (Button) findViewById(R.id.button1);//全选
            button2 = (Button) findViewById(R.id.button2);//反选
            button3 = (Button) findViewById(R.id.button3);//全不选
            listView = (ListView) findViewById(R.id.listveiw);//价格
            price = (TextView) findViewById(R.id.price);
            list = new ArrayList<Good>();
            //赋值
            for (int i = 0; i < 80; i++) {
                list.add(new Good(i+"", false));
            }
            //适配
            adapter = new Adper(list,MainActivity.this);
            listView.setAdapter(adapter);
            button1.setOnClickListener(this);
            button2.setOnClickListener(this);
            button3.setOnClickListener(this);
            // 绑定listView的监听器
            listView.setOnItemClickListener(new OnItemClickListener() {

                public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                        long arg3) {
                    // TODO Auto-generated method stub
                     // 取得ViewHolder对象
                    ViewHolder viewHolder = (ViewHolder) arg1.getTag();
                     // 改变CheckBox的状态
                    viewHolder.checkBox.toggle();
                     // 将CheckBox的选中状况记录下来
                    list.get(arg2).setBo(viewHolder.checkBox.isChecked());
                     // 调整选定条目
                    if (viewHolder.checkBox.isChecked() == true) {
                        num++;
                        pric+=Integer.parseInt(list.get(arg2).getName());
                    } else {
                        num--;
                        pric-=Integer.parseInt(list.get(arg2).getName());
                    }
                    // 用TextView显示
                    price.setText("一共选了"+num+"件,"+"价格是"+pric+"元");
                }
            });

    }
    @Override
    public void onClick(View arg0) {
        // TODO Auto-generated method stub
        switch (arg0.getId()) {
        case R.id.button1:
              num = 0;
              pric = 0;

             for (int i = 0; i < list.size(); i++) {
                 //改变boolean
                 list.get(i).setBo(true);
                 //如果为选中
                      if(list.get(i).getBo()){

                      num++;
                      pric+=Integer.parseInt(list.get(i).getName());

                 }
             }
             //刷新
             adapter.notifyDataSetChanged();
             //显示
             price.setText("一共选了"+num+"件,"+"价格是"+pric+"元");
             break;
        case R.id.button2:
               num = 0;
               pric = 0;
              for (int i = 0; i < list.size(); i++) {
                  //改值
                  if(list.get(i).getBo()){
                      list.get(i).setBo(false);
                  }else{
                      list.get(i).setBo(true);
                  }
                  //刷新
                  adapter.notifyDataSetChanged();
                  //如果为选中
                  if(list.get(i).getBo()){

                       num++;
                       pric+=Integer.parseInt(list.get(i).getName());

                  }
              }
              // 用TextView显示
              price.setText("一共选了"+num+"件,"+"价格是"+pric+"元");
              break;
        case R.id.button3:
              num = 0;
              pric = 0;
             for (int i = 0; i < list.size(); i++) {
                 //改值
                 list.get(i).setBo(false);
                 //刷新
                 adapter.notifyDataSetChanged();
                 //如果为选中
                 if(list.get(i).getBo()){
                      num++;
                      pric+=Integer.parseInt(list.get(i).getName());
                 } 

             }
             price.setText("一共选了"+num+"件,"+"价格是"+pric+"元");
            break;
        }
          }

}

需要定义一个vo类,泳衣存放boolean类型的值,判断是否选中:

package com.example.day_all_button;

public class Good {
    private String name;
    private boolean bo;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public boolean getBo() {
        return bo;
    }
    public void setBo(boolean bo) {
        this.bo = bo;
    }
    public Good(String name, boolean bo) {
        super();
        this.name = name;
        this.bo = bo;
    }

}

加下来事适配器:

package com.example.day_all_button;

import java.util.List;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.CheckBox;
import android.widget.TextView;

public class Adper extends BaseAdapter {
    List<Good> list;
    Context context;

    public Adper(List<Good> list, Context context) {
        // TODO Auto-generated constructor stub
    this.list=list;
    this.context=context;

    }

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

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

    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return position;
    }

    public View getView(final int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
        final ViewHolder viewHolder;
        if(convertView==null){
            convertView=View.inflate(context, R.layout.item, null);
         viewHolder=new ViewHolder();
         viewHolder.textView=(TextView) convertView.findViewById(R.id.text);
        viewHolder.checkBox=(CheckBox) convertView.findViewById(R.id.checkbox);
        convertView.setTag(viewHolder);
        }else{
            viewHolder=(ViewHolder) convertView.getTag();
        }
        viewHolder.textView.setText("价格:"+list.get(position).getName());

        //显示checkBox
        viewHolder.checkBox.setChecked(list.get(position).getBo());

        return convertView;

    }
class ViewHolder{
    TextView textView;
    CheckBox checkBox;
}
}

适配器的xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
   <TextView
       android:id="@+id/text"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="ddd"

       />

   <CheckBox
       android:id="@+id/checkbox"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"

        android:focusable="false"
        android:clickable="false"

       android:layout_alignParentRight="true"
       android:layout_alignParentTop="true" />

</RelativeLayout>
时间: 2024-10-13 21:03:59

全选,反选,全不选以及计算价格的相关文章

表单javascript checkbox全选 反选 全不选

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title>javascript checkbox全选 反选 全不选</title> <meta name="des

【HTML5】页面点击按钮添加一行 删除一行 全选 反选 全不选

页面点击按钮添加一行    删除一行   全选   反选  全不选 页面效果图如下 html页面代码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <link rel="stylesheet" href="bootstrap-3.3.7-dist/css/bootstrap.css" /> <script type=&qu

checkbook全选/反选/全不选

<!doctype html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title></head><body><ul id="list"> <li><label><input type="checkbox"

js实现全选,反选,全不选

思路:1.获取元素.2.用for循环历遍数组,把checkbox的checked设置为true即实现全选,把checkbox的checked设置为false即实现不选.3.通过if判断,如果checked为true选中状态的,就把checked设为false不选状态,如果checked为false不选状态的,就把checked设为true选中状态. js代码 <script> window.onload=function(){ var CheckAll=document.getElementB

复选框的 全选 反选 全不选

//全选 $("#btn1").click(function(){ $("input[name='FORM_COLUMNS']").prop("checked",true); }); //取消全选 $("#btn2").click(function(){ $("input[name='FORM_COLUMNS']").prop("checked",false); }); //反选 $(&

表单全选反选全不选

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>请输入关键词</title> <script type="text/javascript" src="js/jquery.min.js"></script> </head><bod

js购物车全选反选、商品价格统计

模仿淘宝购物车的全选全不选,根据选中的商品计算价格,指定店铺选择.以下是我自己在做H5页面的时候整理出来的,想我一个纯php的来写成这样也不容易.不完善的地方欢迎各位小伙伴指出~ html代码: <body>     <header class="mui-bar mui-bar-nav">         <a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"

jQuery如何实现复选框全选和全不选

jQuery如何实现复选框全选和全不选: 在网页中经常有复选框的全选和全不选效果,比如在后台新闻管理.用户空间信息管理等都有用到,下面就提供一个jQuery实现的此效果.代码实例如下: <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name=&quo

jQuery复选框全选全不选代码

<!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta name="author" content="http://www.51texiao.cn/" /><title>jQuery复选框全选全不选代码<

Android中购物车的全选、反选、问题和计算价格

此Demo主要解决的是购物车中的全选,反选计算价格和选中的条目个数的问题,当选中几条时,点击反选,会把当先选中的变为不选中,把不选中的变为选中.点击全选会全部选中,再次点击时,变为全部不选中. //-----------一下为main的布局----------------------- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http