スピナーを使用すると、一連の値から 1 つの値をすばやく選択できます。デフォルト 選択中の値を示すスピナーが表示されます。スピナーをタップする ユーザーが選択できる他のすべての値を示すメニューを表示します。
レイアウトにスピナーを追加するには、
Spinner
これは通常、XML レイアウトで
<Spinner>
要素。これを次のようにして示します。
例:
<Spinner android:id="@+id/planets_spinner" android:layout_width="match_parent" android:layout_height="wrap_content" />
スピナーに選択肢のリストを設定するには、
SpinnerAdapter
を
Activity
または
Fragment
ソースコードです。
マテリアルデザインコンポーネントを使う場合は
接触者
プルダウン メニューは Spinner
に相当します。
スピナーにユーザーの選択内容を入力する
スピナーにはどのソースからの選択肢も指定できますが、
必ず、SpinnerAdapter
を通じて提供する必要があります。
ArrayAdapter
選択肢が配列または
CursorAdapter
選択肢がデータベース クエリから使用可能な場合。
たとえばスピナーの選択肢が決まっている場合 引数として定義された文字列配列を 文字列リソース file:
<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="planets_array"> <item>Mercury</item> <item>Venus</item> <item>Earth</item> <item>Mars</item> <item>Jupiter</item> <item>Saturn</item> <item>Uranus</item> <item>Neptune</item> </string-array> </resources>
このような配列を使用すると、次のコードを
Activity
または Fragment
: スピナーに
ArrayAdapter
のインスタンスを使用した配列は次のようになります。
Kotlin
val spinner: Spinner = findViewById(R.id.planets_spinner) // Create an ArrayAdapter using the string array and a default spinner layout. ArrayAdapter.createFromResource( this, R.array.planets_array, android.R.layout.simple_spinner_item ).also { adapter -> // Specify the layout to use when the list of choices appears. adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item) // Apply the adapter to the spinner. spinner.adapter = adapter }
Java
Spinner spinner = (Spinner) findViewById(R.id.planets_spinner); // Create an ArrayAdapter using the string array and a default spinner layout. ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource( this, R.array.planets_array, android.R.layout.simple_spinner_item ); // Specify the layout to use when the list of choices appears. adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); // Apply the adapter to the spinner. spinner.setAdapter(adapter);
「
createFromResource()
メソッドを使用すると、文字列配列から ArrayAdapter
を作成できます。「
このメソッドの 3 番目の引数は、レイアウト リソースです。
選択した項目がスピナー コントロールに表示されます。このプラットフォームでは
simple_spinner_item
できます。カスタム レイアウトがデフォルト レイアウトになります。ただし、
スピナーの外観を設定します
発信
setDropDownViewResource(int)
スピナーの選択肢のリストを表示するためにアダプタが使用するレイアウトを指定します。
simple_spinner_dropdown_item
プラットフォームによって定義されるもう 1 つの標準レイアウトです。
発信
setAdapter()
Spinner
にアダプターを適用します。
ユーザーの選択に応答する
ユーザーがスピナーのメニューから項目を選択すると、
Spinner
オブジェクト
on-item-selected イベントを受け取ります。
スピナーの選択イベント ハンドラを定義するには、
AdapterView.OnItemSelectedListener
インターフェースと、対応する
onItemSelected()
コールバック メソッドを指定します。たとえば、次の例は、
Activity
:
Kotlin
class SpinnerActivity : Activity(), AdapterView.OnItemSelectedListener { ... override fun onItemSelected(parent: AdapterView<*>, view: View?, pos: Int, id: Long) { // An item is selected. You can retrieve the selected item using // parent.getItemAtPosition(pos). } override fun onNothingSelected(parent: AdapterView<*>) { // Another interface callback. } }
Java
public class SpinnerActivity extends Activity implements OnItemSelectedListener { ... public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { // An item is selected. You can retrieve the selected item using // parent.getItemAtPosition(pos). } public void onNothingSelected(AdapterView<?> parent) { // Another interface callback. } }
「
AdapterView.OnItemSelectedListener
インターフェースには、
onItemSelected()
と
onNothingSelected()
呼び出すことができます。
呼び出してインターフェースの実装を指定する
setOnItemSelectedListener()
:
Kotlin
val spinner: Spinner = findViewById(R.id.planets_spinner) spinner.onItemSelectedListener = this
Java
Spinner spinner = (Spinner) findViewById(R.id.planets_spinner); spinner.setOnItemSelectedListener(this);
AdapterView.OnItemSelectedListener
を実装する場合
インターフェースを Activity
または Fragment
とやり取りします。
上記の例では、インターフェース インスタンスとして this
を渡すことができます。