您的位置:首页 > 移动开发 > Android开发

Android 在ListView中使用CheckBox,实现增加联系人的功能

2016-01-31 10:38 591 查看
考虑到项目需要,在CheckBox的监听中加入了增加删除联系人数据的操作,在bean类中加入判断状态的Boolean变量,来存储点击状态

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;
}
效果图

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息