Spinner
下拉列表。列表的数据也需要用adapter来填充。
示例
Spinner s = (Spinner) findViewById(R.id.spinner1);
ArrayAdapter<CharSequence> adapter = new ArrayAdapter<CharSequence>(
this, R.layout.only_text, getResources().getTextArray(
R.array.spinner_array));
// 下拉列表的数据
adapter.setDropDownViewResource(R.layout.text_btn);
s.setAdapter(adapter);
上面使用的是ArrayAdapter。构造方法中的参数指的是Spinner显示的布局,setDropDownViewResource()才是下拉列表中item的布局。
也可以使用自定义的Adapter,直接继承BaseAdapter就可以了。
Switch
滑动开关。可以通过setOnCheckedChangeListener来获取当前开关的开启或关闭。但最低要求为API14。
常用属性
checked:设置开关是否开启。true时开启,false时关闭。
thumb:滑动按钮。
track:滑动轨道。
text:滑动开关的左边文字提示。
textOn,textOff:开关开时或关时的文字。
thumbTextPadding:按钮上文字的与按钮的距离。
switchPadding:文字与滑动开关之间的距离。
switchTextAppearance:textOn和textOff文字的样式。如果设置textColor只会影响text对应的文字的样式。
问题
在默认的情况下,文字会出现在滑动开关的左边。如果想让调换文字与开关的位置,可以先用TextView显示,再用一个Switch放置开关(此时Switch就不需要再添加文字了)。此时想怎么调换位置都可以。如:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Standalone switch below:" />
<Switch
android:layout_width="wrap_content"
android:layout_height="wrap_content" />