AlertDialog.Builder load_alert = new AlertDialog.Builder(this);
File list = new File("data/data/project/databases/");
if(!list.exists() || !list.isDirectory()){
return;
}
String [] fileList = list.list();
load_alert.setMessage("Please select");
load_alert.setItems(fileList, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
Toast toast = Toast.makeText(getApplicationContext(), "test", Toast.LENGTH_LONG);
toast.show();
}
});
load_alert.show();
这应该将我的数据库文件夹的内容显示为alertdialog。我检查了fileList数组,并且正在填充它。由于某种原因,它不是通过setItems显示。有什么想法吗?
答案 0 :(得分:10)
我意识到我对球赛有点迟了,你可能已经解决了你的问题,但我遇到了同样的问题,我发现了问题所在。
显然,当您致电.setMessage()
时,会覆盖setItems()
声明并将AlertDialog
转换为消息对话框。而是调用.setTitle()
来设置对话框的标题。
此外,在您的示例中,您似乎没有致电.create()
,因此它应该是load_alert.create().show()
。可能这是一个转录错误,因为我认为AlertDialog.Builder
没有show()
方法。
答案 1 :(得分:0)
即使我发帖也很晚 但这是我试过的,并能够显示所有文件夹。
AlertDialog.Builder listAlert = new AlertDialog.Builder(this);
String [] filelist = path.list();
listAlert.setTitle("Select Definition File");
listAlert.setItems(filelist, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// Stuffs to do after you have selected folder or file.
}
}).show();
在我的代码的某些时候我有
private File path = new File(Environment.getExternalStorageDirectory()+"");
由于