[그림 1] OpenDialog의 실행 모습


로컬 파일 목록을 탐색하고 원하는 파일을 선택 할 수 있는 클래스 입니다.  내부 클래스의 상세한 설명은 아래의 링크를 먼저 읽어보시기 바랍니다.  (안 읽어도 사용하는데에는 지장이 없습니다)


위의 포스트에서 작성된 FileList라는 클래스를 응용하여 OpenDialog 클래스를 만들었습니다.  우선 사용법은 [소스 1]과 같습니다.

[소스 1]
   1 : package app.main;
   2 : 
   3 : import android.app.Activity;
   4 : import android.os.Bundle;
   5 : import android.widget.Toast;
   6 : 
   7 : public class Main extends Activity {
   8 :     /** Called when the activity is first created. */
   9 :     @Override
  10 :     public void onCreate(Bundle savedInstanceState) {
  11 :         super.onCreate(savedInstanceState);
  12 :         setContentView(R.layout.main);
  13 :         
  14 :         _Dialog = new OpenDialog(this);
  15 :         _Dialog.setOnFileSelected(_OnFileSelected);
  16 :         _Dialog.setOnCanceled(_OnCanceled);
  17 :         _Dialog.Show();
  18 :     }
  19 :     
  20 :     private OpenDialog _Dialog = null;
  21 :     
  22 :     private OnFileSelectedListener _OnFileSelected = new OnFileSelectedListener() {
  23 :  @Override
  24 :  public void onSelected(String path, String fileName) {
  25 :  if (fileName.length() > 0) {
  26 :  Toast.makeText(Main.this, fileName, Toast.LENGTH_LONG).show();
  27 :  }
  28 :  }
  29 :  };
  30 : 
  31 :  private OnNotifyEventListener _OnCanceled = new OnNotifyEventListener() {
  32 :  @Override
  33 :  public void onNotify(Object sender) {
  34 :          Toast.makeText(Main.this, "선택이 취소 되었습니다.", Toast.LENGTH_LONG).show();
  35 :  }
  36 :  };
  37 :     
  38 : }

14: OpenDialog 객체를 생성하고,
15: 파일이 선택되었을 때 호출되는 이벤트 리스너를 지정하고,
16: 파일 선택이 취소 되었을 때 호출되는 이벤트 리스너를 지정한 다음,
17: Show() 메소드를 실행하면 [그림 1]과 같이 Dialog 창이 나타납니다.

파일이 선택되지 않은 상태에서 Ok 버턴을 클릭하시면, 24: 라인에서 fileName이 공백 문자열로 전달됩니다.  파일이 선택되었는 지는 OpenDialog 상단에 있는 EditText 뷰에 파일이름이 나타나느냐에 달려있습니다.

전체 소스는 첨부파일을 참고하시기 바랍니다.