Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.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 如何在自定义列表视图中获取特定交换机的id并进行检查_Android_Listview - Fatal编程技术网

Android 如何在自定义列表视图中获取特定交换机的id并进行检查

Android 如何在自定义列表视图中获取特定交换机的id并进行检查,android,listview,Android,Listview,这是我的getView()代码。我想访问此自定义列表视图中的特定开关。我做错了什么 public View getView(final int position, View convertView, ViewGroup parent) { if(convertView==null) { //inflate the custom layout convertView = inflat

这是我的getView()代码。我想访问此自定义列表视图中的特定开关。我做错了什么

public View getView(final int position, View convertView, ViewGroup parent) {


            if(convertView==null)
            {
                //inflate the custom layout
                convertView = inflater.from(parent.getContext()).inflate(R.layout.list_item,parent,false);
                viewHolder=new ViewHolder();

                //cache the views
                viewHolder.sw=(Switch) convertView.findViewById(R.id.switch1);
                viewHolder.name=(TextView) convertView.findViewById(R.id.name);
                viewHolder.rollno=(TextView) convertView.findViewById(R.id.roll);

                viewHolder.id=(TextView) convertView.findViewById(R.id.ID);

                //link the cached views to the convertview
                convertView.setTag(viewHolder);

            }
            else
                viewHolder=(ViewHolder) convertView.getTag();



            //set the data to be displayed

            viewHolder.name.setText(studentList.get(position).get("name").toString());
            viewHolder.rollno.setText(studentList.get(position).get("roll_no").toString());
            viewHolder.id.setText(studentList.get(position).get("id").toString());
            viewHolder.sw.setText("");

            for (int s : absentMarked) {

                Log.d("marked",Integer.toString(s));

                if(s==1){

                    Log.d("Entered","Yes");

                    viewHolder.sw=(Switch) convertView.findViewById(R.id.switch1);
                    viewHolder.sw.setChecked(true);
                }

            }
这就是问题所在。这将检查所有开关是否为真。我想访问列表视图中的特定开关并进行检查。absentMarked是包含0和1的数组列表。我想检查对应于1值的开关是否为真

for (int s : absentMarked) {

                Log.d("marked",Integer.toString(s));

                if(s==1){

                    Log.d("Entered","Yes");

                    viewHolder.sw=(Switch) convertView.findViewById(R.id.switch1);
                    viewHolder.sw.setChecked(true);
                }

            }

您应该为模型中标记的缺席添加字段

   if(studentList.get(position).get("absentMarked")==1){ 
   Log.d("Entered","Yes");
   viewHolder.sw.setChecked(true); 
   }else{ viewHolder.sw.setChecked(false); }
并为开关添加setOnCheckedChangeListner切换值Absent,标记如下:

    sw.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
            if(b){
              setAbsentMarked(1);
            } else{
              setAbsentMarked(0);
        }
    });

此处标记了什么?要访问哪个开关?viewHolder.sw是我要访问的切换开关。@AnkiiRawat absentMarked是一个包含0和1的数组列表。我想检查对应于1的开关是否为真value@MridulSKumar我建议您将缺席标记放在模型中,并以
if(studentList.get(position.get(“缺席标记”)==1){Log.d(“Entered”,“Yes”);viewHolder.sw.setChecked(true);}