Android 在ListView中使用CheckBox,实现增加联系人的功能
2016-01-31 10:38
591 查看
考虑到项目需要,在CheckBox的监听中加入了增加删除联系人数据的操作,在bean类中加入判断状态的Boolean变量,来存储点击状态
SessionHelper部分代码
//新建邮箱增加的收件人str
private List<String> emp_str = new ArrayList<String>();
public List<String> getEmp_str() {
return emp_str;
}
public void setEmp_str(List<String> emp_str) {
this.emp_str = emp_str;
}
//新建邮箱增加的收件人num
private List<String> emp_num = new ArrayList<String>();
public List<String> getEmp_num() {
return emp_num;
}
public void setEmp_num(List<String> emp_num) {
this.emp_num = emp_num;
}
效果图
BaseAdapter类
public class PopEmpSelectAdapter extends BaseAdapter{ private LayoutInflater mInflater; private List<EmployInfo> datas; private Context mContext; public PopEmpSelectAdapter(Context context) { mContext = context; mInflater = (LayoutInflater) mContext .getSystemService(Context.LAYOUT_INFLATER_SERVICE); } public void setData(List<EmployInfo> datas) { this.datas = datas; } @Override public int getCount() { return datas == null ? 0 : datas.size(); } private class Holder{ CheckBox mCb_emp; } @Override public View getView(final int position, View convertView, ViewGroup parent) { Holder holder = null; if (convertView == null) { convertView = mInflater.inflate(R.layout.pop_empselectadapter, parent, false); holder = new Holder(); holder.mCb_emp = (CheckBox) convertView.findViewById(R.id.cb_emp); convertView.setTag(holder); } else { holder = (Holder) convertView.getTag(); } final EmployInfo data = datas.get(position); if (data == null) return null; holder.mCb_emp.setText(data.getEmpname()); //final Holder finalHolder = holder; final String str = data.getEmpname(); final String num = data.getEmpid(); holder.mCb_emp.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(((CheckBox)v).isChecked()){ SessionHelper.getInstance().getEmp_str().add(str); SessionHelper.getInstance().getEmp_num().add(num); data.setCheckStatus(true); }else{ SessionHelper.getInstance().getEmp_str().remove(str); SessionHelper.getInstance().getEmp_num().remove(num); data.setCheckStatus(false); } } }); holder.mCb_emp.setChecked(data.getCheckStatus()); return convertView; } @Override public EmployInfo getItem(int position) { // TODO Auto-generated method stub return datas.get(position); } @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } }
<strong><span style="color:#ff0000;">EmployInfo类部分代码</span></strong>
<span style="font-family: Arial, Helvetica, sans-serif;">private boolean checkStatus=true;</span>
public boolean getCheckStatus() { return checkStatus; } public void setCheckStatus(boolean checkStatus) { this.checkStatus = checkStatus; }
SessionHelper部分代码
//新建邮箱增加的收件人str
private List<String> emp_str = new ArrayList<String>();
public List<String> getEmp_str() {
return emp_str;
}
public void setEmp_str(List<String> emp_str) {
this.emp_str = emp_str;
}
//新建邮箱增加的收件人num
private List<String> emp_num = new ArrayList<String>();
public List<String> getEmp_num() {
return emp_num;
}
public void setEmp_num(List<String> emp_num) {
this.emp_num = emp_num;
}
效果图
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories