スピナー ウィジェットを使用していくつかの項目を選択しています。現時点では、スピナーは単純な Textview をロードし、アイテムの名前を表示します。
スピナー行内に表示する独自のビューを定義することは可能ですか? カスタム リストの行に似ているのではないかと思います。
リスト内の各アイテムのスピナーテキストから離れた個々のアイコンを表示したいだけです。
はい、できます - ご存じかもしれませんが、Spinner
は のタイプですAdapterView
。つまり、独自のデータをそのような で表示するように適応させることができますView
。
アプローチはListView
. ApiDemos からの抜粋:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, INTERPOLATORS);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
s.setAdapter(adapter);
独自のレイアウトを定義して、使用するSpinnerAdapter
サブクラスに渡すことができます。
はい、とても簡単です。
主なことは、TextView をレイアウト ファイルのルート要素として定義することです。
以下のようにします。
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, INTERPOLATORS);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
s.setAdapter(adapter);
simple_spinner_dropdown_item.xml
ファイル :
<?xml version="1.0" encoding="utf-8"?>
<TextView>
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="50px"
android:textColor="#000000"
android:textSize="20px"
android:gravity="center_vertical" >
</TextView>