安卓checkbox实现全选反选
来源:互联网 发布:个性扑克牌制作软件 编辑:程序博客网 时间:2024/06/05 18:39
效果图
activity_main.XML
<TextView android:id="@+id/tv" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" /> <LinearLayout android:id="@+id/line" android:layout_width="fill_parent" android:layout_height="50dp" android:layout_below="@+id/tv" android:orientation="horizontal" > <Button android:id="@+id/bt_selectall" android:layout_width="80dp" android:layout_height="fill_parent" android:text="全选" /> <Button android:id="@+id/bt_cancleselectall" android:layout_width="80dp" android:layout_height="fill_parent" android:text="反选" /> <Button android:id="@+id/bt_deselectall" android:layout_width="80dp" android:layout_height="fill_parent" android:text="取消选择" /> </LinearLayout> <ListView android:id="@+id/lv" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_below="@+id/line" />
item.XML
<CheckBox android:id="@+id/item_cb" android:layout_width="wrap_content" android:layout_height="wrap_content" android:clickable="false" android:focusable="false" android:focusableInTouchMode="false" android:gravity="center_vertical" /> <TextView android:id="@+id/item_tv" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_weight="1" />
MainActivity
public class MainActivity extends AppCompatActivity { private ListView lv; private MyAdapter mAdapter; private ArrayList<String> list; private Button bt_selectall; private Button bt_cancel; private Button bt_deselectall; private int checkNum; // 记录选中的条目数量 private TextView tv_show;// 用于显示选中的条目数量 /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); /* 实例化各个控件 */ lv = (ListView) findViewById(R.id.lv); bt_selectall = (Button) findViewById(R.id.bt_selectall); bt_cancel = (Button) findViewById(R.id.bt_cancleselectall); bt_deselectall = (Button) findViewById(R.id.bt_deselectall); tv_show = (TextView) findViewById(R.id.tv); list = new ArrayList<String>(); // 为Adapter准备数据 initDate(); // 实例化自定义的MyAdapter mAdapter = new MyAdapter(list, this); // 绑定Adapter lv.setAdapter(mAdapter); // 全选按钮的回调接口 bt_selectall.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 遍历list的长度,将MyAdapter中的map值全部设为true for (int i = 0; i < list.size(); i++) { MyAdapter.getIsSelected().put(i, true); } // 数量设为list的长度 checkNum = list.size(); // 刷新listview和TextView的显示 dataChanged(); } }); // 反选按钮的回调接口 bt_cancel.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 遍历list的长度,将已选的设为未选,未选的设为已选 for (int i = 0; i < list.size(); i++) { if (MyAdapter.getIsSelected().get(i)) { MyAdapter.getIsSelected().put(i, false); checkNum--; } else { MyAdapter.getIsSelected().put(i, true); checkNum++; } } // 刷新listview和TextView的显示 dataChanged(); } }); // 取消按钮的回调接口 bt_deselectall.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 遍历list的长度,将已选的按钮设为未选 for (int i = 0; i < list.size(); i++) { if (MyAdapter.getIsSelected().get(i)) { MyAdapter.getIsSelected().put(i, false); checkNum--;// 数量减1 } } // 刷新listview和TextView的显示 dataChanged(); } }); // 绑定listView的监听器 lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { // 取得ViewHolder对象,这样就省去了通过层层的findViewById去实例化我们需要的cb实例的步骤 MyAdapter.ViewHolder holder = (MyAdapter.ViewHolder) arg1.getTag(); // 改变CheckBox的状态 holder.cb.toggle(); // 将CheckBox的选中状况记录下来 MyAdapter.getIsSelected().put(arg2, holder.cb.isChecked()); // 调整选定条目 if (holder.cb.isChecked() == true) { checkNum++; } else { checkNum--; } // 用TextView显示 tv_show.setText("已选中" + checkNum + "项"); } }); } // 初始化数据 private void initDate() { for (int i = 0; i < 15; i++) { list.add("data" + " " + i); } } // 刷新listview和TextView的显示 private void dataChanged() { // 通知listView刷新 mAdapter.notifyDataSetChanged(); // TextView显示最新的选中数目 tv_show.setText("已选中" + checkNum + "项"); }}
阅读全文
0 0
- 安卓checkbox实现全选反选
- 安卓checkbox全选/反选/取消选择
- jQuery实现checkbox全选和反选
- JQuery 实现checkbox全选、反选、取消
- JQuery实现的 checkbox 全选、反选。
- js实现checkbox全选,反选,全不选
- Form中实现Checkbox全选反选
- js 实现checkbox全选、全不选、反选
- jquery实现 checkbox全选和反选
- JS实现CheckBox的全选/反选
- Jquery实现checkbox全选和反选
- ListView+CheckBox实现全选和反选
- jquery实现checkbox全选反选
- checkbox实现全选和反选代码
- JQuery实现的 checkbox 全选、反选。
- checkbox全选/反选的实现
- js实现checkbox全选,反选,全不选
- checkbox全选反选
- 福利 | 科大讯飞全球开发者节下周举行 重磅发布1024计划(内有赠票)
- 自动驾驶投资三年超5000亿 微软在AI领域完成18笔收购
- 自动驾驶养肥了他们!起底汽车雷达四大巨头
- 连库需要改的地址
- OJDBC驱动版本区别 ojdbc14.jar,ojdbc5.jar跟ojdbc6.jar的区别
- 安卓checkbox实现全选反选
- 利用Data URL(data:image/jpg;base64,)将小图片生成数据流形式
- canvas-基础绘制
- recycleview+okhttp
- html页面调用相册、照相机、
- python基础学习日记
- Hadoop 常见问题总结
- 排序之快速排序
- pthread_create()函数用法