2017-03-21 4 views
0

Ich habe Wallpaper-Anwendung, die Bild speichern Funktion haben und wir zeigen diese Bilder in meiner Sammlung Menü. Ich möchte es als neu gespeichert zuerst anzeigen. Gibt es eine Chance solche Bilder zu bestellen? Meine Codes zum Abrufen von Bildern aus dem Datenordner lauten wie folgt.Get image order by time android

public void getImages() 
{ 
    File root = new File(Environment.getExternalStorageDirectory()+File.separator+"KaroShare/"); 
    File[] images = root.listFiles(); 
    arrayList.clear(); 
    if(images!=null){ 
     for(int i=0;i<images.length;i++) { 
      if(images[i].getName().endsWith(".png") || images[i].getName().endsWith(".jpg") || 
        images[i].getName().endsWith(".jpeg")) { 
       String path = images[i].getAbsolutePath(); 
       arrayList.add(path); 
      } 
     } 
    } 
} 

Lassen Sie mich wissen, wenn jemand eine Idee hat, es zu tun. Danke vielmals !

+0

Ich glaube, Sie bewusst auf LinkedList Array. Verwenden Sie das verknüpfte lIst-Array. –

Antwort

1

Sie können die Dateien mit currentFile.lastModified() sortieren.

+1

können Sie bitte etwas mehr erklären? – Priya

+0

https://docs.oracle.com/javase/7/docs/api/java/io/File.html#lastModified() –

0

Versuchen Sie, diese

public void getImages() 
    { 
     File root = new File(Environment.getExternalStorageDirectory()+File.separator+"KaroShare/"); 
     File[] images = root.listFiles(); 
     arrayList.clear(); 
     if(images!=null){ 
     Arrays.sort(images, new Comparator() 
      { 
      public int compare(Object o1, Object o2) { 

       if (((File)o1).lastModified() > ((File)o2).lastModified()) { 
       return -1; 
       } else if (((File)o1).lastModified() < ((File)o2).lastModified()) { 
       return +1; 
       } else { 
       return 0; 
      } 
     } 

    }); 
      for(int i=0;i<images.length;i++) { 
       if(images[i].getName().endsWith(".png") || images[i].getName().endsWith(".jpg") || 
         images[i].getName().endsWith(".jpeg")) { 
        String path = images[i].getAbsolutePath(); 
        arrayList.add(path); 
       } 
      } 

     } 
    } 
+0

hat meine Antwort bearbeitet –