로컬 파일 목록을 탐색하고 원하는 파일을 선택 할 수 있는 클래스 입니다. 내부 클래스의 상세한 설명은 아래의 링크를 먼저 읽어보시기 바랍니다.
위의 포스트에서 작성된 FileList라는 클래스를 응용하여 OpenDialog 클래스를 만들었습니다. 우선 사용법은 [소스 1]과 같습니다.
[소스 1]
package app.main;
import android.app.Activity;
import android.os.Bundle;
import android.widget.Toast;
public class Main extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
_Dialog = new OpenDialog(this);
_Dialog.setOnFileSelected(_OnFileSelected);
_Dialog.setOnCanceled(_OnCanceled);
_Dialog.Show();
}
private OpenDialog _Dialog = null;
private OnFileSelectedListener _OnFileSelected = new OnFileSelectedListener() {
@Override
public void onSelected(String path, String fileName) {
if (fileName.length() > 0) {
Toast.makeText(Main.this, fileName, Toast.LENGTH_LONG).show();
}
}
};
private OnNotifyEventListener _OnCanceled = new OnNotifyEventListener() {
@Override
public void onNotify(Object sender) {
Toast.makeText(Main.this, "선택이 취소 되었습니다.", Toast.LENGTH_LONG).show();
}
};
}
14: OpenDialog 객체를 생성하고,
15: 파일이 선택되었을 때 호출되는 이벤트 리스너를 지정하고,
16: 파일 선택이 취소 되었을 때 호출되는 이벤트 리스너를 지정한 다음,
17: Show() 메소드를 실행하면 [그림 1]과 같이 Dialog 창이 나타납니다.
파일이 선택되지 않은 상태에서 Ok 버턴을 클릭하시면, 24: 라인에서 fileName이 공백 문자열로 전달됩니다. 파일이 선택되었는 지는 OpenDialog 상단에 있는 EditText 뷰에 파일이름이 나타나느냐에 달려있습니다.
전체 소스는 첨부파일을 참고하시기 바랍니다.