ListView + CheckBox (全选,反选,取消)

来源:互联网 发布:python安装包官网下载 编辑:程序博客网 时间:2024/05/16 10:21

Xml布局

<strong><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" >    <ListView        android:id="@+id/lv"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:layout_weight="1" />    <LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:orientation="horizontal" >        <Button            android:id="@+id/btn1"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_weight="1"            android:text="全选" />        <Button            android:id="@+id/btn2"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_weight="1"            android:text="取消" />        <Button            android:id="@+id/btn3"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_weight="1"            android:text="反选" />    </LinearLayout></LinearLayout></strong>

Main

<strong>package com.bw.list_checkbox;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.ListView;import android.widget.Toast;import com.bw.adapter.Myadapter;public class MainActivity extends Activity {private ListView lv;private Button btn2, btn1, btn3;private List<String> list;private Myadapter adapter;private int nuber = 0;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);lv = (ListView) findViewById(R.id.lv);btn1 = (Button) findViewById(R.id.btn1);btn2 = (Button) findViewById(R.id.btn2);btn3 = (Button) findViewById(R.id.btn3);list = new ArrayList<String>();initDate();adapter = new Myadapter(this, list);lv.setAdapter(adapter);btn1.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {for (int i = 0; i < list.size(); i++) {boolean[] checks = Myadapter.checks;if (checks[i] == false) {checks[i] = true;}}nuber = list.size();Change();}});btn2.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {for (int i = 0; i < list.size(); i++) {boolean[] checks = Myadapter.checks;if (checks[i] == true) {checks[i] = false;}}nuber = list.size();Change();}});btn3.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {for (int k = 0; k < list.size(); k++) {boolean[] checks = Myadapter.checks;if (checks[k] == true) {checks[k] = false;nuber--;} else {checks[k] = true;nuber++;}}Change();}});}private void initDate() {for (int i = 0; i < 15; i++) {list.add("data" + i);}}public void Change() {adapter.notifyDataSetChanged();Toast.makeText(MainActivity.this, "已选择" + nuber + "项",Toast.LENGTH_SHORT).show();}}</strong>

Adapter


<strong>package com.bw.adapter;import java.util.List;import com.bw.list_checkbox.R;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.TextView;public class Myadapter extends BaseAdapter {private Context contextx;private List<String> list;public static boolean[] checks;;public Myadapter(Context context, List<String> list) {this.contextx = context;this.list = list;checks = new boolean[list.size()];}@Overridepublic int getCount() {return list.size();}@Overridepublic Object getItem(int arg0) {return null;}@Overridepublic long getItemId(int arg0) {return 0;}@Overridepublic View getView(final int position, View convertView, ViewGroup parent) {Haodler handler;if (convertView == null) {handler = new Haodler();convertView = View.inflate(contextx, R.layout.list_adapter, null);handler.text = (TextView) convertView.findViewById(R.id.adapter_text);handler.cb = (CheckBox) convertView.findViewById(R.id.adapter_cb);convertView.setTag(handler);}handler = (Haodler) convertView.getTag();handler.text.setText(list.get(position));final int pos = position;handler.cb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {checks[pos] = isChecked;}});handler.cb.setChecked(checks[pos]);return convertView;}class Haodler {TextView text;public CheckBox cb;}}</strong>

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 科一指纹录不上怎么办 右倒库右边太宽怎么办 手机录不了指纹怎么办 6sp指纹不灵敏怎么办 手指纹汗多怎么办? 手指没指纹怎么办身份证 青岛身份证丢了怎么办 新身份证没激活怎么办 坐轻轨没身份证怎么办 办身份证指纹录不上怎么办 指纹固化剂干了怎么办 指纹解锁没反应怎么办 荣耀v8指纹失灵怎么办 指纹多次不匹配怎么办 华为指纹被禁用怎么办 手脱皮没有指纹怎么办 手脱皮手机指纹怎么办 手脱皮录指纹怎么办 科二指纹打不上怎么办 三星手机无法解锁怎么办 iphone7指纹坏了怎么办 苹果8录不上指纹怎么办 手机套总是粘指纹怎么办 华为p9指纹禁用怎么办 华为p10升级失败怎么办 手机指纹锁没反应怎么办 华为手机指纹禁用怎么办 excel输入值非法怎么办 excel表数字乱码怎么办 excel表格打不开了怎么办 表格中数字乱码怎么办 手机颜色变了怎么办 身份证上的字母怎么办 身份证被盗用贷款怎么办 刑拘在逃不归案怎么办 在逃人员抓不到怎么办 卖假烟被网上追逃怎么办? 同事贷款不还怎么办 支付宝怎么办信用卡2 钱站逾期一天怎么办 蚂蚁借呗逾期怎么办