Android 从列表视图中选择特定位置
我有一个带有复选框的列表视图和两个文本视图,我想在其中显示员工姓名和员工id号。问题是,我只想检查具有smsMobilenumber的位置,而不应该检查该位置是否不存在mobilenumber。请帮帮我Android 从列表视图中选择特定位置,android,listview,Android,Listview,我有一个带有复选框的列表视图和两个文本视图,我想在其中显示员工姓名和员工id号。问题是,我只想检查具有smsMobilenumber的位置,而不应该检查该位置是否不存在mobilenumber。请帮帮我 public SmsEmployeeNameListAdapter(Context context, BaseActivity activity, ArrayList<CheckModelClass> employeeName, ArrayList<CheckModelClas
public SmsEmployeeNameListAdapter(Context context, BaseActivity activity, ArrayList<CheckModelClass> employeeName, ArrayList<CheckModelClass> employeeNumber,
ArrayList<CheckModelClass> smsMobileNum, ArrayList<CheckModelClass> employeeId, ArrayList<String> updatedSmsNumber, ArrayList<String> updatedUserId) {
super(context, R.layout.sms_employeelist,employeeName);
this.context = context;
this.activity = activity;
this.employeeName = employeeName;
this.employeeNumber = employeeNumber;
this.smsMobileNum = smsMobileNum;
this.employeeId = employeeId;
this.updatedSmsNumber = updatedSmsNumber;
this.updatedUserId = updatedUserId;
}
private static class ViewHolder {
CheckBox checkBox;
TextView EmployeeName, EmployeeNumber;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder = null;
if(convertView == null){
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.sms_employeelist, parent, false);
viewHolder = new ViewHolder();
viewHolder.EmployeeName = (TextView)convertView.findViewById(R.id.text1);
viewHolder.EmployeeNumber = (TextView)convertView.findViewById(R.id.text2);
viewHolder.checkBox = (CheckBox)convertView.findViewById(R.id.checkbox);
viewHolder.checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
int getPosition = (Integer) buttonView.getTag();
if(!smsMobileNum.get(getPosition).getName().isEmpty()){
employeeName.get(getPosition).setSelected(buttonView.isChecked());
if(isChecked){
updatedSmsNumber.add(smsMobileNum.get(getPosition).getName());
updatedUserId.add(employeeId.get(getPosition).getName());
}else{
updatedSmsNumber.remove(smsMobileNum.get(getPosition).getName());
updatedUserId.remove(employeeId.get(getPosition).getName());
}
}
}
});
convertView.setTag(viewHolder);
convertView.setTag(R.id.text1, viewHolder.EmployeeName);
convertView.setTag(R.id.text2, viewHolder.EmployeeNumber);
convertView.setTag(R.id.checkbox, viewHolder.checkBox);
}else{
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.checkBox.setTag(position);
viewHolder.EmployeeName.setText(employeeName.get(position).getName());
viewHolder.EmployeeNumber.setText(employeeNumber.get(position).getName());
viewHolder.checkBox.setChecked(employeeName.get(position).isSelected());
return convertView;
}
公共SmsEmployeeNameListAdapter(上下文上下文上下文、BaseActivity活动、ArrayList employeeName、ArrayList employeeNumber、,
ArrayList smsMobileNum、ArrayList employeeId、ArrayList updatedSmsNumber、ArrayList updatedUserId){
super(context,R.layout.sms_employeelist,employeeName);
this.context=上下文;
这个。活动=活动;
this.employeeName=employeeName;
this.employeeNumber=employeeNumber;
this.smsMobileNum=smsmsmobilenum;
this.employeeId=employeeId;
this.updatedsmssnumber=updatedsmssnumber;
this.updatedUserId=updatedUserId;
}
私有静态类视图持有者{
复选框;
TextView EmployeeName,EmployeeNumber;
}
@凌驾
公共视图getView(最终整数位置、视图转换视图、视图组父视图){
ViewHolder ViewHolder=null;
if(convertView==null){
充气器=(LayoutFlater)context.getSystemService(context.LAYOUT\u充气器\u服务);
convertView=充气机。充气(R.layout.sms_employeelist,父项,false);
viewHolder=新的viewHolder();
viewHolder.EmployeeName=(TextView)convertView.findViewById(R.id.text1);
viewHolder.EmployeeNumber=(TextView)convertView.findViewById(R.id.text2);
viewHolder.checkBox=(checkBox)convertView.findViewById(R.id.checkBox);
viewHolder.checkBox.setOnCheckedChangeListener(新建CompoundButton.OnCheckedChangeListener()){
@凌驾
检查更改后的公共无效(复合按钮视图,布尔值已检查){
int getPosition=(整数)buttonView.getTag();
如果(!smsmsmobilenum.get(getPosition.getName().isEmpty()){
employeeName.get(getPosition).setSelected(buttonView.isChecked());
如果(已检查){
updatedSmsNumber.add(smsmsmobilenum.get(getPosition.getName());
add(employeeId.get(getPosition.getName());
}否则{
updatedSmsNumber.remove(smsmsmobilenum.get(getPosition.getName());
updateUserId.remove(employeeId.get(getPosition.getName());
}
}
}
});
convertView.setTag(viewHolder);
setTag(R.id.text1,viewHolder.EmployeeName);
setTag(R.id.text2,viewHolder.EmployeeNumber);
setTag(R.id.checkbox,viewHolder.checkbox);
}否则{
viewHolder=(viewHolder)convertView.getTag();
}
viewHolder.checkBox.setTag(位置);
viewHolder.EmployeeName.setText(EmployeeName.get(position.getName());
viewHolder.EmployeeNumber.setText(EmployeeNumber.get(position.getName());
viewHolder.checkBox.setChecked(employeeName.get(position.isSelected());
返回视图;
}
在这里检查
if(userObj.get(getPosition).gethasNumber()))
{
viewHolder.checkBox.setVisibility(View.VISIBLE);
viewHolder.checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
int getPosition = (Integer) buttonView.getTag();
if(!smsMobileNum.get(getPosition).getName().isEmpty()){
employeeName.get(getPosition).setSelected(buttonView.isChecked());
if(isChecked){
updatedSmsNumber.add(smsMobileNum.get(getPosition).getName());
updatedUserId.add(employeeId.get(getPosition).getName());
}else{
updatedSmsNumber.remove(smsMobileNum.get(getPosition).getName());
updatedUserId.remove(employeeId.get(getPosition).getName());
}
}
}
});
}
你的错误到底是什么?我没有错。我只想只检查那些手机号码字段不为空的姓名。它仍在选择它。然后隐藏复选框..并显示它,如果数据存在更新了我的答案,请查看它。!
if(userObj.get(getPosition).gethasNumber()))
{
viewHolder.checkBox.setVisibility(View.VISIBLE);
viewHolder.checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
int getPosition = (Integer) buttonView.getTag();
if(!smsMobileNum.get(getPosition).getName().isEmpty()){
employeeName.get(getPosition).setSelected(buttonView.isChecked());
if(isChecked){
updatedSmsNumber.add(smsMobileNum.get(getPosition).getName());
updatedUserId.add(employeeId.get(getPosition).getName());
}else{
updatedSmsNumber.remove(smsMobileNum.get(getPosition).getName());
updatedUserId.remove(employeeId.get(getPosition).getName());
}
}
}
});
}