clear custom arrayadapter

J

jowieweb

Neues Mitglied
0
Hallo

ich stehe vor einem (hoffentlich) kleinem Problem. Ich habe einen custom arrayadapter der ein listview "befüllt". Der Adapter hat für jedes Item 3 Spalten ( 3 TextViews).
Das alles wird aus einem TabWidget, welches 3 Tabs (day1, day2 und day3) hat, herraus gestartet.
Jeder der Tabs hat eine solche Listview mit oben beschriebenen Adapter.
Das Anzeigen und befüllen klappt auch alles ganz gut. Jedoch weiß ich nicht wie ich den Adapter und die Listen wieder leer bekomme.

Habe schon ein wenig herum gegoogelt und festgestellt das es eig. mit
PHP:
        alldata = new String[0];
        myAdapter adapter= (myAdapter) list1.getAdapter();
        adapter.notifyDataSetChanged();
gehen sollte, wobei alldata die als parameter übergebenen Daten sind.
Leider ändert das nix. Es werden immer noch die "grade auf 0 gesetzten" Strings angezeigt.
Ich habe leider nichts dazu gefunden was die notifyDataSetChanged Methode machen soll. Deshalb sieht sie bei mir grade so aus :
PHP:
    @Override
    public void notifyDataSetChanged() {
        // TODO Auto-generated method stub
        super.notifyDataSetChanged();
    }
Habe auch
PHP:
        data = new String[0];
        alldata = new String[0];
        myAdapter bums = (myAdapter) list1.getAdapter();
        bums.clear();
        bums.notifyDataSetChanged();
        list1.setAdapter(bums);
versucht. Leider führ das .clear() hier zu "java.lang.UnsupportedOperationException", wobei der adapter bei clear auch nur
PHP:
    public void clear() {
        // TODO Auto-generated method stub
        super.clear();
    }
aufruft.



Ich hoffe ihr könnt mir helfen :)
 
Wenn du den folgenden Code ausserhalb deines Adapters aufrufst geht das natürlich nicht. Das liegt daran, dass dem Adapter eine Kopie Referenz aufs Array übergeben wurde.
PHP:
        alldata = new String[0];
        myAdapter adapter= (myAdapter) list1.getAdapter();
        adapter.notifyDataSetChanged();

Wenn es doch dein Adapter ist (übrigens fangen Klassen laut Konvention immer mit einem Großbuchstaben an), dann implementiere clear() selber. Setze das Array zurück in der Methode und rufe dann notifyDataSetChanged() auf.
 
grrr... da hätte ich auch selber drauf kommen können :D
Vielen Dank, geht :)
 

Ähnliche Themen

J
Antworten
2
Aufrufe
984
justinh13
J
J
Antworten
2
Aufrufe
692
JoEntwickler
J
Zurück
Oben Unten