Wie erstelle ich ein Adapter korrekt?

  • Antworten:0
  • Forum-Beiträge: 537

13.12.2021, 22:15:32 via Website

Hallo zusammen

Ich habe einen Adapter welcher eine Stringliste anzeigt. Der Text wird in einer Reihe von Checkboxen ausgegeben.

   class VorAdapter extends ArrayAdapter<String>{

    public VorAdapter(@NonNull Context context, int resource) {
        super(context, resource);
    }

    @Override
    public int getCount() {
        return str_list_vor.size();
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        if(convertView != null){
            CheckBox chkb_obj_vor = (CheckBox) convertView.findViewById(R.id.chkb_vor);
            chkb_obj_vor.setText(str_list_vor.get(position));
        }else{
            convertView = getLayoutInflater().inflate(R.layout.layout_vor, null);
            CheckBox chkb_obj_vor = (CheckBox) convertView.findViewById(R.id.chkb_vor);
            chkb_obj_vor.setText(str_list_vor.get(position));
        }
        return convertView;
    }
}

Ich habe im Internet nachgesehen und diverse Vorschläge gefunden. Nun bin ich Verunsichert ob ich nicht was falsch mache.

Erstellen tue ich wie folgt:

private VorAdapter adapter_vor;

adapter_vor = new VorAdapter(ctx, 0);

Mein Problem ist, dass er im Itemklicklistener nicht durchläuft.

list_vor.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            CheckBox objekt = (CheckBox) view.findViewById(R.id.chkb_vor);
            objekt.setChecked(!objekt.isChecked());
        }
    });

Könnte es daran liegen, dass ich Checkboxen verwende und nicht Textviews?

Gruss Renato

Beantworte die Frage als Erster