问题描述
即使Arraylist包含路径, isDirectory()函数也会返回false。
Arraylist的项目具有内部存储和SD卡的路径。 任何人都会为此提供任何解决方案。
这是代码 -
public class FileBrowser extends ListActivity {
ArrayList<String> listItems;
String ROOT_PATH1 = "/storage/emulated/0";
String ROOT_PATH2 = "/storage/sdcard1";
String parent="";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_file_browser);
setRoot();
}
private void setRoot() {
listItems = new ArrayList<String>();
listItems.add("<-BACK");
listItems.add(ROOT_PATH1);
listItems.add(ROOT_PATH2);
ArrayAdapter<String> fileList = new ArrayAdapter<String>(this,R.layout.file_list_row, listItems);
setListAdapter(fileList);
}
//on clicking any item in the dialog
@Override
protected void onListItemClick(ListView l, View v, int position, long id){
int selectedRow = (int)id;
int y=0;
if(selectedRow == 0){
setRoot();
}else
{
File file = new File(listItems.get(selectedRow));
if(file.isDirectory()){
getFiles(file.listFiles());
//opening pdf files
}else{
//neither pdf file nor directory
}
}
}
1楼
您使用的是哪个版本的Android? 据我记得,KitKat中有一些与SD卡访问相关的限制。 也许这至少会有所帮助:
棒棒糖的限制再次消失