摘要:本文将带你了解Android应用开发android 实现ListView嵌套Checkbox实现真正的多选、全选、反选、取消,希望本文对大家学Android有所帮助。
本文将带你了解Android应用开发android 实现ListView嵌套Checkbox实现真正的多选、全选、反选、取消,希望本文对大家学Android有所帮助。
android 实现ListView嵌套Checkbox实现真正的多选、全选、反选、取消
我们在开发APP的时候,很多情况下会使用到ListView嵌套CheckBox的情况,例如购物车选择商品的情况,其实很多人要说这个其实很简单了,并没有那么复杂,事实上并非如此,我们在使用ListView嵌套CheckBox复选框的时候会出现很多问题,接下来我将用一篇博客来说明这些问题,给大家一些参照,解决ListView嵌套Checkbox解决复用问题。
效果图如下:
\
首先,我们先看MainActivity中的布局,
接下来看MainActivity的代码如下:
package com.example.cx.listviewdemo;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private ListView mLv;
private Button mBtnSelectAll, mBtnUnSelectAll, mBtnDelete, mBtnCancel;
//数据源
private List
//与条目对应的选中状态
private List
private MyAdapter mAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
mDataList = new ArrayList
mCheckedList = new ArrayList
for (int i = 0; i < 50; i++) {
mDataList.add(数据 + i);
mCheckedList.add(false);
}
mAdapter = new MyAdapter(MainActivity.this, mDataList);
mAdapter.setData(mDataList, mCheckedList);
mLv.setAdapter(mAdapter);
mLv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView parent, View view, int position, long id) {
Toast.makeText(MainActivity.this, 条目 + position + 被点击了, Toast.LENGTH_SHORT).show();
mCheckedList.set(position, !mCheckedList.get(position));
mAdapter.setData(mDataList, mCheckedList);
mAdapter.notifyDataSetChanged();
}
});
}
private void initView() {
mLv = (ListView) findViewById(R.id.lv);
mBtnSelectAll = findViewById(R.id.btn_all_select);
mBtnUnSelectAll = findViewById(R.id.btn_all_unselect);
mBtnDelete = findViewById(R.id.btn_delete);
mBtnCancel = findViewById(R.id.btn_cancel);
mBtnSelectAll.setOnClickListener(this);
mBtnUnSelectAll.setOnClickListener(this);
mBtnDelete.setOnClickListener(this);
mBtnCancel.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
//全选
case R.id.btn_all_select:
select_all();
break;
//反选
case R.id.btn_all_unselect:
unselect_all();
break;
//删除
case R.id.btn_delete:
delete();
break;
//取消
case R.id.btn_cancel:
cancel();
break;
}
}
// 全选
private void select_all() {
for (int i = 0; i < mCheckedList.size(); i++) {
mCheckedList.set(i, true);
}
mAdapter.setData(mDataList, mCheckedList);
mAdapter.notifyDataSetChanged();
}
//取消
private void cancel() {
for (int i = 0; i < mCheckedList.size(); i++) {
mCheckedList.set(i, false);
}
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之Android频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号