Я хочу нажать кнопку в моей деятельности и открыть отдельное действие, которое отображает администратор папки, к которой я хочу получить доступ. Таким образом, код для перехода к следующему действию прост (начинайте новую деятельность с намерения). Однако я хочу отобразить содержимое папки в этом новом действии в arraylist.ArrayList для файлов в папке Android Внутреннее хранилище/хранилище/эмулировано/0/
Пустой путь к этому содержимому во внутреннем хранилище моего устройства (а не внешнее хранилище SDCard).
Я хотел бы, чтобы отобразить файлы из следующего каталога
/storage/emulated/0/Android/data/com.../files/
ком ... это подделка имя пути, это просто иллюстрирует, что есть имя пакета.
Итак, в нижней строке я хочу отображать содержимое в файлах (текстовые файлы или изображения и т. Д.) В arraylist в моем новом действии. Всякий раз, когда я пытаюсь указать на этот путь с помощью «Файл», он не отображает arraylist, а скорее пустой экран.
Так, например:
String path = "/storage/emulated/0/Android/data/com.../files/";
File dir = new File(path);
List values = new ArrayList();
String[] list = dir.list();
if (list != null) {
for (String file : list) {
if (!file.startsWith(".")) {
values.add(file);
}
}
}
Collections.sort(values);
ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_2, android.R.id.text1, values);
setListAdapter(adapter);
Является ли ваш Arraylist заселенным? С устройством, которое не является корневым, у вас есть доступ только к очень конкретным каталогам; поэтому ваш 'dir.list()' может вернуть нуль –
Galvin, Я отладил программу, и да, она возвращает null. Я использую ненастроенное устройство. Это связано с тем, что не все пользователи будут иметь внедренное устройство. Если устройство не внедрено, нет ли способа доступа к внутреннему хранилищу? Или, есть ли способ установить минимальный или некоторый код для создания диспетчера файлов на месте, который приводит пользователя в эту папку? –
У вас будет только доступ к sdcard и директории, перечисленной здесь 'getApplicationContext(). GetApplicationInfo(). DataDir' –