ここから、新しく追加、変更を設定するダイアログで、 直接入力が可能なSpinnerを作ってみようと思いました。
で、できたのがコレ↓
ちょっと画像ではわかりにくいですね。
作成方法はSpinnerに設定するアダプタに対して
作成時、EditTextのレイアウトを食わせる
setDropDownViewResourceでテキストのレイアウトを設定する
な感じの操作をする。
具体的にはこんな感じ。
//Spinnerの設定
Spinner spn = (Spinner)inputView.findViewById(id.spinnerType);
//Spinnerに設定するアダプタのレイアウトをEditTextのレイアウトで作成する
//指定している [dialog_spinner_layout]はホントにEditTextだけのレイアウト
ArrayAdapter adp = ArrayAdapter.createFromResource(parentAct.getApplicationContext(),
R.array.MimeTypeArray,R.layout.dialog_spinner_layout);
//ドロップダウンのレイアウトをTextView?のレイアウトで作成する
// android.R.layout.simple_dropdown_item_1line はandroid側で定義済みのレイアウト
// 普通にTextViewを指定するとドロップダウンで表示されたものがはみ出ることがある
adp.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
spn.setAdapter(adp);
取りあえず一応できました。が、細かいところの設定が色々難しい。
初期値として、EditTextの文字列を変更させようかと思ったのですが、どうやっても初期化時に、EditTextが取得できない。
表示後なら、
spinner.getSelectedView();
でEditTextを取得できるのですが。。。
やっぱり素直にAutoCompleteTextViewクラスで作成するべき、というのが今回の結論でした。
0 件のコメント:
コメントを投稿