1、Spinner控件簡介
Spinner控件提供一個快速的方法從一個組裏面選擇一個值。在默認狀態下,Spinner顯示第一個值。觸摸Spinner可以顯示一個下拉菜單,用戶可以選擇一個新值。Spinner控件每一次只能選擇一個值,它的選項來自於與該控件綁定的適配器或android:entries屬性。控件樣式如下:
2、xml佈局文件如下
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<Spinner
android:id="@+id/spinner1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:entries="@array/city" />
<Spinner
android:id="@+id/spinner2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/spinner1" />
<Spinner
android:id="@+id/spinner3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/spinner2" />
</RelativeLayout>
第一個Spinner控件,下拉列表裏面的內容來自於values/String.xml文件,而第二個、第三個Spinner控件,下拉列表的裏面的值來自於ArrayAdapter適配器類。
java代碼同其他代碼類似,只不過是多了一個ArrayAdapter適配器類的設置。這裏對適配器進行一個簡單的介紹,適配器就是把java代碼中的數據,不論數據是以字符串、數組、對象等等形式存儲,把這些形式存儲的數據,通過適配器顯示到View控件上,即適配器是數據與View控件之間的橋樑。
java代碼如下:
package com.example.spinner;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
public class MainActivity extends Activity {
private Spinner spinner2;
private Spinner spinner3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
spinner2 = (Spinner) this.findViewById(R.id.spinner2);
spinner3 = (Spinner) this.findViewById(R.id.spinner3);
String[] roles = { "系統管理員", "普通會員", "VIP會員", "遊客" };
// 方式一:new一個Adapter適配器
// 創建一個數組適配器(上下文,下拉列表裏的佈局,顯示下拉選項的組件ID,數據)
ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_dropdown_item,
android.R.id.text1, roles);
// 通過適配器進行數據綁定
spinner2.setAdapter(adapter1);
// 方式二:
ArrayAdapter<CharSequence> adapter2 = ArrayAdapter.createFromResource(this,
R.array.city, android.R.layout.simple_spinner_dropdown_item);
adapter2.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
// 通過適配器進行數據綁定
spinner3.setAdapter(adapter2);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}