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);