2011-10-07 51 views
2
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顯示。有任何想法嗎?AlertDialog不顯示文件列表

回答

10

我意識到我對球賽有點遲,而且你可能已經解決了你的問題,但是我遇到了同樣的問題,我找出了問題所在。

顯然,當您撥打.setMessage()時,它將覆蓋setItems()聲明並將AlertDialog轉換爲消息對話框。相反,請致電.setTitle()設置對話框的標題。

另外,在您的示例中,您似乎沒有撥打.create(),因此它應該是load_alert.create().show()。可能這是一個抄寫錯誤,因爲我認爲AlertDialog.Builder沒有show()方法。

+0

我剛剛有同樣的問題.. API文檔真的應該同時指定調用之間的差異。謝謝! – Andre

+0

謝謝,你救了我的命! –

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

感謝