5

我想知道如何在ListView中顯示目錄中的文件。該文件可能被列出:顯示ListView中的文件列表

File dir = new File(dirPath); 
File[] filelist = dir.listFiles(); 

,並通過ArrayAdapter加入ListView,但我不明白的ArrayAdapter的使用。

+0

到底是什麼你的問題?有很多關於「如何管理數組適配器」,「如何創建列表視圖」的SO問題。對於你我想你只想顯示一個文件夾中的不同文件的名稱到一個列表視圖。您必須將字符串ArrayList傳遞給您的適配器。看官方文檔,有一些關於如何做ListView的例子。 – 2012-02-16 19:13:23

回答

14

我猜你想從該目錄顯示文件名,所以你可以試試這個:

File dir = new File(dirPath); 
File[] filelist = dir.listFiles(); 
String[] theNamesOfFiles = new String[filelist.length]; 
for (int i = 0; i < theNamesOfFiles.length; i++) { 
    theNamesOfFiles[i] = filelist[i].getName(); 
} 

與列表中使用的適配器:

new ArrayAdapter<String>(this, android.R.layout.simple_list_item, theNamesOfFiles); 

對於任何更復雜而不是顯示您必須實現自定義適配器的文件的名稱。

+0

怎麼樣的文件名稱加上創建/修改的日期? – Si8 2013-08-02 18:36:39

+0

@ SiKni8不幸的是'File'類暴露了最後一次文件修改的日期,而不是創建日期。爲了表明除了文件名外,你可以使用一個自定義適配器或一個包含數據的'Hashmap'並使用'SimpleAdapter'。 – Luksprog 2013-08-03 06:48:04

+0

感謝您的回覆。我認爲修改日期應該足夠我。我有一個問題是我想顯示一個自定義圖標,後面跟着圖標的文件名右上角和修改日期右下角的圖標。我將如何實現這一目標? – Si8 2013-08-03 12:12:55

1

或者你可以用這樣的一個排序filenamesString

File dataDirectory = Environment.getDataDirectory(); 
File fileDir = new File(dataDirectory, "data/com.yourapp.app/files"); 

String[] listItems = fileDir.list(); 
Arrays.sort(listItems);