1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

clear custom arrayadapter

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von jowieweb, 06.02.2012.

  1. jowieweb, 06.02.2012 #1
    jowieweb

    jowieweb Threadstarter Neuer Benutzer

    Beiträge:
    6
    Erhaltene Danke:
    0
    Registriert seit:
    06.02.2012
    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= (myAdapterlist1.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 = (myAdapterlist1.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 :)
     
  2. the_alien, 06.02.2012 #2
    the_alien

    the_alien Android-Lexikon

    Beiträge:
    1,559
    Erhaltene Danke:
    184
    Registriert seit:
    04.05.2009
    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= (myAdapterlist1.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.
     
  3. jowieweb, 06.02.2012 #3
    jowieweb

    jowieweb Threadstarter Neuer Benutzer

    Beiträge:
    6
    Erhaltene Danke:
    0
    Registriert seit:
    06.02.2012
    grrr... da hätte ich auch selber drauf kommen können :D
    Vielen Dank, geht :)
     

Diese Seite empfehlen