Добавьте метод GetFiles()
в вашу программу. Позвоните, чтобы получить ArrayList<>
всех файлов. Затем вы можете использовать его для заполнения вашего listview
. Вам необходимо предоставить строковый аргумент DirectoryPath
.
Функция:
public ArrayList<String> GetFiles(String DirectoryPath) {
ArrayList<String> MyFiles = new ArrayList<String>();
File f = new File(DirectoryPath);
f.mkdirs();
File[] files = f.listFiles();
if (files.length == 0)
return null;
else {
for (int i=0; i<files.length; i++)
MyFiles.add(files[i].getName());
}
return MyFiles;
}
Пример использования:
@Override
public void onCreate() {
// Other Code
ListView lv;
ArrayList<String> FilesInFolder = GetFiles("/sdcard/somefolder");
lv = (ListView)findViewById(R.id.filelist);
lv.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, FilesInFolder));
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
// Clicking on items
}
});
}
Убедитесь, что внешнее хранилище доступно для чтения: http://developer.android.com/guide/topics/data/data-storage.html#filesExternal
Чтобы отфильтровать файлы по имени / расширению: Как получить доступ к SDCard и возврату и массиву файлов с определенным форматом?