[그림 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 뷰에 파일이름이 나타나느냐에 달려있습니다.
전체 소스는 첨부파일을 참고하시기 바랍니다.
진저에서 OpenDialog 라고 하는 새로운 API 가 생긴줄 알고 착각했네요 ㅎㅎ