輪轉選單可讓使用者從一組值中輕鬆選取某個值。採用預設值 狀態時,輪轉選單會顯示目前選取的值。輕觸旋轉圖示 會顯示選單,顯示使用者可選取的所有其他值。
您可以使用
Spinner
這類物件通常是在 XML 版面配置中使用
<Spinner>
元素。如下所示
範例:
<Spinner android:id="@+id/planets_spinner" android:layout_width="match_parent" android:layout_height="wrap_content" />
如要在輪轉選單填入選項清單,請指定
SpinnerAdapter
在您的
Activity
或
Fragment
Cloud Build 觸發條件
會在您變更原始碼時自動啟動建構作業
如果您使用的是 Material Design 元件,
實驗組
下拉式選單等同於 Spinner
。
透過使用者選項填入輪轉選單
您為輪轉選單提供的選項可能來自任何來源,但您可以
必須透過 SpinnerAdapter
提供,例如
ArrayAdapter
如果選項有陣列或陣列中
CursorAdapter
當資料庫查詢有可用的選項時
舉例來說,假設輪轉選單可用的選項已預先決定 您可以提供 字串資源 檔案:
<?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
。
這個方法的第三個引數是版面配置資源,可定義
所選的選項會顯示在輪轉選單控制項中這個平台提供
simple_spinner_item
版面配置。除非您想自行定義版面配置,否則此為預設版面配置
旋轉圖示的呈現方式
致電
setDropDownViewResource(int)
指定轉接程式用於顯示輪轉選單選項清單的版面配置。
simple_spinner_dropdown_item
是由平台定義的另一個標準版面配置
致電
setAdapter()
即可在 Spinner
上套用轉接器。
回覆使用者所選項目
當使用者從輪轉選單的選單中選取項目時,
Spinner
個物件
收到項目選取事件時。
如要定義輪轉選單的選取事件處理常式,請實作
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
做為介面執行個體。