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

Problem mit ListView

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von toob1994, 24.04.2011.

  1. toob1994, 24.04.2011 #1
    toob1994

    toob1994 Threadstarter Neuer Benutzer

    Beiträge:
    2
    Erhaltene Danke:
    0
    Registriert seit:
    24.04.2011
    Hallo Liebe Android Gemeinde

    ich habe in den letzten paar Tagen versucht einen Fileexplorer für mein Android zu erstellen. Jetzt habe ich folgendes Problem:

    Ich kann die Files in Eclipse im LogCat alle ausgeben, aber wenn ich versuche sie in einer ListView auszugeben, erhalte ich immer nur den letzten Ornder ausgegeben.

    Meine Vermutung ist, dass der ArrayAdapter immer wieder gelöscht wird, (nicht nur Vermutung, ist vermutlich auch so). Wie kann ich eine ListView in einer For schleife immer wieder ergänzen?
    Hier meine Methode:


    Code:
    public void listDir(File dir) {ListView lv1 = (ListView) this.findViewById(R.id.listView1);  File[] files = dir.listFiles();if (files != null) {  for (int i = 0; i < files.length; i++) {System.out.println(files[i].getAbsolutePath());  // By using setAdpater method in listview we an add string array in list.lv1.setAdapter(yourAdapter);yourAdapter = (new ArrayAdapter<File>(this, android.R.layout.simple_list_item_1, files));  listDir(files[i]);  if (files[i].isDirectory()) {  System.out.print(" (Ordner)\n");//hier sollte ich noch etwas einfügen können, damit am schluss immer steht dass es ein Ordner ist. (im Debug funktionierts mit System.out.println)  listDir(files[i]);    }else {  System.out.print(" (Datei)\n");  //hier sollte ich noch etwas einfügen können, damit am schluss immer steht dass es eine Datei ist.  listDir(files[i]);   }   }     }  }  public void rootdirectory(){  TextView tv4 = (TextView) this.findViewById(R.id.textView4);  File dir3 = Environment.getRootDirectory();tv4.setText(dir3+"");  listDir(dir3); //hier wird der Pfad mitgegeben für ListDir  }
    Vielen Dank für eure Hilfe

    Gruss
    toob1994
     
  2. GalaxyKeks, 26.04.2011 #2
    GalaxyKeks

    GalaxyKeks Android-Guru

    Beiträge:
    2,004
    Erhaltene Danke:
    356
    Registriert seit:
    16.08.2010
    Phone:
    OnePlus3, Nexus 6P
    Könntest du den Code vielleicht mal so Posten das man es auch lesen kann?
    Das ist ja furchtbar. Ich glaube so wird dir niemand helfen wollen...
     
  3. toob1994, 26.04.2011 #3
    toob1994

    toob1994 Threadstarter Neuer Benutzer

    Beiträge:
    2
    Erhaltene Danke:
    0
    Registriert seit:
    24.04.2011
    Code:
    public void listDir(File dir) 
    {ListView lv1 = (ListView) this.findViewById(R.id.listView1); 
     File[] files = dir.listFiles();if (files != null) 
    {  for (int i = 0; i < files.length; i++) {
    System.out.println(files[i].getAbsolutePath());  
    // By using setAdpater method in listview we an add string array in list.
    lv1.setAdapter(yourAdapter);
    yourAdapter = (new ArrayAdapter<File>(this, android.R.layout.simple_list_item_1, files));  listDir(files[i]);  if (files[i].isDirectory()) 
    {  
    System.out.print(" (Ordner)\n");
    //hier sollte ich noch etwas einfügen können, damit am schluss immer steht dass es ein Ordner ist. (im Debug funktionierts mit System.out.println) 
     listDir(files[i]); 
    }else {  
    System.out.print(" (Datei)\n"); 
     //hier sollte ich noch etwas einfügen können, damit am schluss immer steht dass es eine Datei ist. 
     listDir(files[i]); 
      }   
    }    
     } 
     }  
    public void rootdirectory()
    {  TextView tv4 = (TextView) this.findViewById(R.id.textView4); 
     File dir3 = Environment.getRootDirectory();
    tv4.setText(dir3+"");  
    listDir(dir3);  
     
  4. GalaxyKeks, 26.04.2011 #4
    GalaxyKeks

    GalaxyKeks Android-Guru

    Beiträge:
    2,004
    Erhaltene Danke:
    356
    Registriert seit:
    16.08.2010
    Phone:
    OnePlus3, Nexus 6P
    Wichtig ist was in deiner Activity steht...
    Den Adapter setzt man normalerweise dort und nicht in irgendeiner Methode.
    Kannst du mal deinen Code zur Activity posten?
     

Diese Seite empfehlen