Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从列表视图中选择特定位置_Android_Listview - Fatal编程技术网

Android 从列表视图中选择特定位置

Android 从列表视图中选择特定位置,android,listview,Android,Listview,我有一个带有复选框的列表视图和两个文本视图,我想在其中显示员工姓名和员工id号。问题是,我只想检查具有smsMobilenumber的位置,而不应该检查该位置是否不存在mobilenumber。请帮帮我 public SmsEmployeeNameListAdapter(Context context, BaseActivity activity, ArrayList<CheckModelClass> employeeName, ArrayList<CheckModelClas

我有一个带有复选框的列表视图和两个文本视图,我想在其中显示员工姓名和员工id号。问题是,我只想检查具有smsMobilenumber的位置,而不应该检查该位置是否不存在mobilenumber。请帮帮我

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());
                        }

                    }

                }
            });
}