ListView lässt sich nicht leeren. UnsupportedOperationException

  • Antworten:1
Julio Salsa
  • Forum-Beiträge: 2

02.04.2011, 17:48:15 via Website

Guten Abend zusammen,
ich sitze schon den gesamten Nachmittag an einem verdammten, nervigen Problem.
Ich hole mir den Quellcode einer Website und hole mir daraus meine gewünschten Informationen. Das funktioniert soweit auch ganz gut.
Das ganze wird bei mir in einer ListView dargestellt.

Allerdings, wenn ich meine App dann schließe und neu öffne wird der gesamte gefilterte Inhalt an den schon bestehenden angefügt.
Also, beim 1. Durchlauf habe ich bspw.: 1 2 3 4 und beim nochmaligen öffnen dann 1 2 3 4 1 2 3 4 und dann 1 2 3 4 1 2 3 4 1 2 3 4 usw.

Ich bekomme diese irgendwie nicht geleert. Nach googlen bin ich darauf gestoßen, dass man den ArrayAdapter mit den Methoden clear() bzw. remove(Object String) löschen können müsste und mit notifiyDataSetChanged() Änderungen vermerken könnte.

Aber baue ich dies in mein Quellcode ein, dann sagt mir Logcat immer "04-02 17:05:19.069: ERROR/AndroidRuntime(2009): java.lang.UnsupportedOperationException" Warum? Ich komme da nicht drauf...

Hier mal Ausschnittsweise der Aufbau meiner Klasse:

1class TestListView
2{
3 private static ArrayList<String> al = new ArrayList<String>();
4 static String[] B;
5 static ArrayAdapter<String> ad;
6
7 public boolean onCreateOptionsMenu(Menu menu)
8 {
9 //dürfte glaube ich nicht relevant sein an dieser Stelle
10 }
11
12 @Override
13 public boolean onOptionsItemSelected(MenuItem item)
14 {
15 //Wenn hier der Button zum aktualisieren gewählt wird, soll auch eigentlich ad.clear() ausgeführt werden. Allerdings erscheint selbiger Fehler...
16 }
17
18 @Override
19 public void onCreate(Bundle savedInstanceState) {
20
21 super.onCreate(savedInstanceState);
22 getArr(); //mit dieser Methode lese ich denn HTML-Quellcode aus und parse
23 ad = new ArrayAdapter<String>(this, R.layout.list_item, B);
24 setListAdapter(ad);
25 lv = getListView();
26 lv.setTextFilterEnabled(true);
27 }
28
29public static void getArr ()
30{
31 // Wie oben beschrieben setzte ich hier die Werte für das oben deklarierte String-.Array "B"
32}

Ich hoffe das reicht, wenn nicht poste ich mal den gesamten Quellcode. Wobei der echt schlecht strukturiert ist durch meine ganzen Tests und Versuche :D Hatte ja 4 Stunden Zeit am Nachmittag den zu verhunzen... Wenn' s denn wenigstens klappen würde -.-

Vielleicht hat ja einer von euch Ideen.
Danke u. Gruß.

Antworten
Julio Salsa
  • Forum-Beiträge: 2

02.04.2011, 18:10:41 via Website

In Line 23, der Smiley im Code ist natürlich kein Smiley, sondern das String-Array B. Aus B und ) wird wohl dieser Smiley.

Antworten