基本的微調器示例

Spinner 這是一種下拉輸入。首先是佈局

  <Spinner
    android:id="@+id/spinner"     <!-- id to refer this spinner from JAVA-->
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    
</Spinner>

現在,第二個在 spinner 中填充值。在 spinner 中,主要有兩種方法來填充值。

  1. 從 XML 本身創造 array.xml目錄下水庫。建立這個 array
  <string-array name="defaultValue">
    <item>--Select City Area--</item>
    <item>--Select City Area--</item>
    <item>--Select City Area--</item>
</string-array>

現在在 sppiner XML 中新增此行

            android:entries="@array/defaultValue"
  1. 你還可以通過 JAVA 新增值

如果你在 activity 中使用 cityArea =(Spinner)findViewById(R.id.cityArea); 否則,如果你在 fragment 使用

cityArea = (Spinner) findViewById(R.id.cityArea);

現在建立一個 arrayListStrings

ArrayList<String> area = new ArrayList<>();
//add values in area arrayList
cityArea.setAdapter(new ArrayAdapter<String>(context
                            , android.R.layout.simple_list_item_1, area));

這看起來像

http://i.stack.imgur.com/BuLI2.jpg http://i.stack.imgur.com/3rFYB.jpg

根據裝置 Android 版本,它將呈現樣式

以下是一些預設主題

如果應用未在其清單中明確請求主題,Android 系統將根據應用的 targetSdkVersion 確定預設主題,以維持應用的原始期望:

Android SDK 版本 預設主題
版本 < 11 @android:風格/主題
版本介於 11 到 13 之間 @android:款式/ Theme.Holo
版本 14 及以上 @android:款式/ Theme.DeviceDefault

Spinner 可以在 xml 的幫助下輕鬆定製,例如

 android:background="@drawable/spinner_background"

 android:layout_margin="16dp"

 android:padding="16dp"

在 XML 中建立自定義背景並使用它。

輕鬆獲取微調器中所選專案的位置和其他詳細資訊

cityArea.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            areaNo = position;
        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {

        }
    });

在微調器中更改所選專案的文字顏色

這可以通過 XML 以兩種方式完成

<item android:state_activated="true" android:color="@color/red"/>

這將更改彈出視窗中所選的專案顏色。

並從 JAVA 執行此操作(在 setOnItemSelectedListener(...) 中)

 @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                 ((TextView) parent.getChildAt(0)).setTextColor(0x00000000);
// similarly change `background color` etc.
            }