Простой сборщик каталога Android - Как?
Я только что начал кодирование в Android Studio и чувствую себя потрясающе..!!
Как написать код для "Directory Picker". то есть, когда нажата кнопка, просто экран диалога/действия, который может отображать список каталогов.
Кроме того, необходимо сохранить все файлы в этом каталоге в переменную Array. (После нажатия кнопки ОК).
PS: Я искал здесь и нашел какой-то классный "Выбор файла", но я искал Directory Chooser..!
Спасибо заранее.
Ответы
Ответ 1
Попробуйте использовать Intent.ACTION_OPEN_DOCUMENT_TREE
Intent i = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);
i.addCategory(Intent.CATEGORY_DEFAULT);
startActivityForResult(Intent.createChooser(i, "Choose directory"), 9999);
И получить результат Uri from onActivityResult data.getData()
public void onActivityResult(int requestCode, int resultCode, Intent data) {
switch(requestCode) {
case 9999:
Log.i("Test", "Result URI " + data.getData());
break;
}
}
Ответ 2
Также вы можете использовать некоторые библиотеки.
например:
https://github.com/passy/Android-DirectoryChooser
Ответ 3
Есть библиотека с открытым исходным кодом, которая делает выбор каталога и открывает/сохраняет действия файла также. Его можно найти на GitHub по адресу https://github.com/BoardiesITSolutions/FileDirectoryPicker.
Работает на Android API уровня 17 и выше
Отказ от ответственности: я написал это
Ответ 4
Используйте код ниже, чтобы выбрать каталог
Intent result = new Intent();
result.putExtra("chosenDir", path);
setResult(RESULT_OK, result);
И чтобы получить выбранный путь переопределить onActivityResult:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == PICK_DIRECTORY && resultCode == RESULT_OK) {
Bundle extras = data.getExtras();
String path = (String) extras.get("chosenDir");
}
}