Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.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 listview的第一项和最后一项的作用相同_Android_Android Studio_Listview_Baseadapter - Fatal编程技术网

Android listview的第一项和最后一项的作用相同

Android listview的第一项和最后一项的作用相同,android,android-studio,listview,baseadapter,Android,Android Studio,Listview,Baseadapter,我正在使用ListView显示用户列表。要删除用户,我可以在listview的每一行上使用复选框选择用户,以选择或取消选择用户。 不幸的是,当我选中第一个复选框时,最后一个复选框的行为是相同的,并且也被选中。当我选择最后一个时也是一样,第一个也会被选择 我的适配器中有此代码 我不知道listview中的两个项目是如何像那样链接的,但希望你们中的一些人有一些想法 @NonNull @Override public View getView(int position, @Nullab

我正在使用ListView显示用户列表。要删除用户,我可以在listview的每一行上使用复选框选择用户,以选择或取消选择用户。 不幸的是,当我选中第一个复选框时,最后一个复选框的行为是相同的,并且也被选中。当我选择最后一个时也是一样,第一个也会被选择

我的适配器中有此代码

我不知道listview中的两个项目是如何像那样链接的,但希望你们中的一些人有一些想法

@NonNull
    @Override
    public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {

        ViewHolder viewHolder;

        if (convertView == null) {

            viewHolder = new ViewHolder();
            LayoutInflater inflater = LayoutInflater.from(context);
            convertView = inflater.inflate(R.layout.modele_liste_patient, parent, false);
            viewHolder.champNomPrenom = convertView.findViewById(R.id.modele_liste_patient_nom_prenom_patient);
            viewHolder.champDate = convertView.findViewById(R.id.modele_liste_patient_date_naissance_patient);
            viewHolder.icon = convertView.findViewById(R.id.modele_liste_patient_image_patient);
            viewHolder.checkBox = convertView.findViewById(R.id.bonjour);

            convertView.setTag(viewHolder);

        } else {

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

        viewHolder.champNomPrenom.setText(nom_prenom.get(position));
        viewHolder.champDate.setText(date_naissance.get(position));
        viewHolder.checkBox.setId(id_patient.get(position));

        if (supression) {

        ImageView imageView = convertView.findViewById(R.id.aurevoir);

        viewHolder.checkBox.setVisibility(View.VISIBLE);
        imageView.setVisibility(View.INVISIBLE);

        convertView.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                CheckBox cb = ((ViewHolder) v.getTag()).checkBox;
                System.out.println(cb);
                if (cb.isChecked()) {

                    System.out.println("CLICKED ON ID : " + cb.getId());
                    Cabinet.supprimerIdPourSupression(cb.getId());
                    cb.setChecked(false);
                }
                else {

                    System.out.println("CLICKED ON ID : " + cb.getId());
                    Cabinet.ajouterIdPourSupression(cb.getId());
                    cb.setChecked(true);
                }
            }
        });
    }

        File imgFile = new File(image.get(position));

        if (imgFile.exists()) {

            Picasso.get()
                    .load(imgFile)
                    .resize(80, 80)
                    .centerCrop()
                    .transform(new CircleTransform())
                    .into(viewHolder.icon);
        } else {

            Picasso.get()
                    .load("url")
                    .placeholder(R.drawable.ic_action_utilisateur_default)
                    .error(R.drawable.ic_action_utilisateur_default)
                    .transform(new CircleTransform())
                    .into(viewHolder.icon);
        }

        return convertView;
    }

    private static class ViewHolder {

        TextView champNomPrenom;
        TextView champDate;
        ImageView icon;
        CheckBox checkBox;
    }
}