Android控件之Spinner

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

}



發佈了32 篇原創文章 · 獲贊 10 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章