2011-10-07 2 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(); 

경고 내 데이터베이스 폴더의 내용을 경고 대화 상자에 표시합니다. fileList 배열을 검사했는데 채워집니다. 어떤 이유로 setItems를 통해 표시되지 않습니다. 어떤 아이디어?AlertDialog에서 파일 목록을 표시하지 않습니다.

답변

10

내가 볼링 경기에 조금 늦었다는 것과 당신은 이미 당신의 문제를 해결했을 것이라고 생각하지만, 나는 똑같은 문제를 안고 있었고 그 문제가 무엇인지 알았습니다.

.setMessage()을 호출하면 setItems() 선언을 무시하고 AlertDialog을 메시지 대화 상자로 바꿉니다. 대신 .setTitle()으로 전화하여 대화 상자의 제목을 설정하십시오.

또한 예제에서는 .create()을 호출하지 않으므로 load_alert.create().show()이어야합니다. 아마 AlertDialog.Builder에는 show() 메서드가 없기 때문에 그것은 필사적으로 오류입니다.

+0

있습니다. 감사! – 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(); 

내 코드에서 어떤 시점에서

는 난 그냥 .. API를 워드 프로세서 정말 두 통화 사이의 차이를 지정해야합니다 같은 문제를 했어

private File path = new File(Environment.getExternalStorageDirectory()+""); 

감사

관련 문제