我想单击我的活动中的按钮并打开一个单独的活动,显示我想要访问的文件夹的数组列表。因此,进入下一个活动的代码很简单(以意图开始新活动)。但是,我想在arraylist中的这个新活动中显示文件夹的内容。文件夹中的文件的ArrayList Android内部存储/存储/模拟/ 0/
此内容的路径位于设备的内部存储器中(不是外部/ SD卡存储器)。
我想从以下目录
显示文件/storage/emulated/0/Android/data/com.../files/
COM ...是假的路径名,这只是为了说明包名。
所以底线是我想在我的新活动中的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是否被填充?使用不Rooted的设备,您只能访问非常特定的目录;因此你的'dir.list()'可能会返回null –
Galvin, 我调试了程序,是的它返回null。我正在使用非根设备。这是因为并非所有用户都拥有根设备。如果设备没有固定,是否没有任何方式访问内部存储? 或者,有没有一种方法可以放入最少的或某些代码来创建将用户带到此文件夹的现场文件管理器? –
您只能访问sdcard和此处列出的目录getApplicationContext()。getApplicationInfo()。dataDir' –