AlertDialog不显示文件列表

时间:2011-10-07 20:57:13

标签: java android alertdialog

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显示。有什么想法吗?

2 个答案:

答案 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()+"");

由于