Fehler mit CheckBoxen im ListView

  • Antworten:1
DennisG
  • Forum-Beiträge: 35

21.06.2014, 17:59:31 via Website

Hallo,
ich habe ca. 40 Einträge in einer ListView. In jeder Zeile ist ein Bild und eine CheckBox.

Problem: Wenn ich eine CheckBox aktiviere und runter scrolle dann sind bereits weitere aktiviert. Die makierungen verschieben sich dann auch. Hoffe ihr könnt mir da helfen...

Hier ein Code Ausschnitt:

lv = (ListView) findViewById(R.id.listView1);       

    List<HashMap<String,String>> aList = new ArrayList<HashMap<String,String>>();

    for(int i=0;i<country.length;i++){
        HashMap<String, String> hm = new HashMap<String,String>();
        hm.put("txt", country[i]);
        hm.put("flag", Integer.toString(flags[i]) );
        aList.add(hm);
    }

    String[] from = { "flag","txt" };

    int[] to = { R.id.imageView1,R.id.checkBox1};

    SimpleAdapter adapter = new SimpleAdapter(getBaseContext(), aList, R.layout.row_contry_select, from, to);

    lv.setAdapter(adapter);

Antworten
Andreas S.
  • Forum-Beiträge: 76

22.06.2014, 21:00:39 via App

ist auch logisch, wenn du scrollst wird bei dir die view wahrscheinlich wiederverwendet und wenn die checkbox eben aktiviert war, dann tritt dein beschriebenes verhalten für manche views ein, je nachdem welche view die listview zum wiederverwenden bereitstellt. du musst bei jedem Aufruf von getview prüfen ob die checkbox für diese Position aktiviert sein muss oder nicht. dafür brauchst du die entsprechende logik.

Edit: Das beschriebene gilt für BaseAdapter.

— geändert am 22.06.2014, 21:05:13

Antworten