2010-06-02
■[Android][Java]AlertDialogでファイル一覧から選択させて開く
この辺のサンプルでは、ダイアログをクリックさせて「何番目をクリックしたか」を取得しているけど、スコープの関係でファイルを開いてViewに表示する関数を呼ぶとかはできない。
- 八角研究所 : Android で再開する Java プログラミング(14) - ダイアログを制するものがAndroidを制する!
- Java/Android/応用編/選択ダイアログの表示 | PukiWiki
リストダイアログ - 橋本詳解 でスコープの関係でfinalつけた変数を渡してたけど
よく考えたらJavaは複数のinterfaceをimplementsできるから、DialogInterface.OnClickListenerも実装してしまえばいいのだった
ファイル開く loadFile(File f) 関数を持っているクラス自らimplementsする
SDカード内のファイルの読み書き - 橋本詳解を基にしている
public class Test extends Activity implements View.OnClickListener, DialogInterface.OnClickListener{ private String[] dialog_fileNames; }
dialogに表示したファイル名の配列は、後で使うのでメンバとして持っておく。
new File("/path/to/dir").listFiles(); とかでファイル名の一覧を取得しておいて、
String[] fileNamesを作る。これをダイアログに表示する。onClickのリスナとして自分を登録。
this.dialog_fileNames = fileNames; new AlertDialog.Builder(this).setTitle("select").setItems(fileNames, this).show();
これでダイアログが表示される。
んで自ら DialogInterface.OnClickListener をimplementsしてるから、onClickで選択されたダイアログと、上から何番目が選択されたかが取得できる
これで同じinstanceのメソッドからになるのでloadFile(File f)が呼び出せる
public void onClick(DialogInterface dialog, int which) { Log.v("selected index", Integer.toString(which)); File f = new File(this.dialog_fileNames[which]); this.loadFile(f); }
トラックバック - http://d.hatena.ne.jp/shokai/20100602/1275499332
リンク元
- 37 http://b.hatena.ne.jp/
- 34 http://pipes.yahoo.com/pipes/pipe.info?_id=faa858a20082ef6d25ad27557e37e011
- 18 http://b.hatena.ne.jp/entrylist
- 16 http://reader.livedoor.com/reader/
- 15 http://b.hatena.ne.jp/entrylist/it
- 15 http://codezine.jp/bookmark/
- 15 http://shokai.org/blog/archives/4141
- 14 http://b.hatena.ne.jp/hotentry
- 12 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rlz=1T4ADRA_jaJP375JP375&q=opencv+ubuntu+インストール
- 10 http://hootsuite.com/dashboard

