基本的微调器示例

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.
            }