我正在研究一个Android项目,我正在尝试从SD卡获取文件和目录列表。它似乎更少工作,除了文件名输出一堆废话,我不明白为什么。
以下是我用来获取文件列表的代码。
public ArrayList getFileDirectoryListing() { ArrayList fileAndDirectories = new ArrayList();
final String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state))
{
File[] files = Environment.getExternalStorageDirectory().listFiles();
for (int i = 0; i < files.length; i++)
{
FileDirectoryDetails fileDirectoryDetails = new FileDirectoryDetails();
fileDirectoryDetails.path = files[i].getName();
if (files[i].isDirectory())
{
fileDirectoryDetails.fileOrDirectory = FileOrDirectory.Directory;
}
else
{
fileDirectoryDetails.fileOrDirectory = FileOrDirectory.File;
}
fileAndDirectories.add(fileDirectoryDetails);
}
}
return fileAndDirectories;
}
以下是我用来设置列表适配器的代码
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
listView = getListView();
ArrayList<FileDirectoryDetails> filesAndDirectories = getFileDirectoryListing();
fileDirectoryDetailsArrayAdapter = new
ArrayAdapter<FileDirectoryDetails>(this, android.R.layout.simple_list_item_1, filesAndDirectories);
setListAdapter(fileDirectoryDetailsArrayAdapter);
}
下面是我在列表视图中返回的内容的屏幕截图,而不是实际的文件名。
答案 0 :(得分:1)
请务必覆盖toString()
返回有意义的详细信息中的FileDirectoryDetails
。目前您使用的是默认toString()
或者只使用路径字符串而不是整个FileDirectoryDetails
或者,覆盖适配器的getView()
,将TextView
的文字设置为details.path