得到的效果圖如下:
一、首先要在佈局文件中加個Spinner標籤,說明這個是一個下拉菜單的控件:main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <Spinner android:id="@+id/spinnerID" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </LinearLayout>
二、然後在Activity中得到這個Spinner控件的ID,爲它設置監聽器,並在這個onCreate()中設置一個List,在裏面加入菜單列表的內容,而這個菜單列表的樣式是自己定義的spinner.xml,這也可以直接用android自帶的樣式,幫助文檔上有這個代碼。
Activity_spinner .java
package com.wyt.Activity_spinner;
import java.util.ArrayList;
import java.util.List;import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;public class Activity_spinner extends Activity {
private Spinner spinnerID = null;/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
spinnerID = (Spinner) findViewById(R.id.spinnerID);// 創建一個List來存放下拉列表中菜單的名稱
List<String> list = new ArrayList<String>();
list.add("相機");
list.add("相冊");
list.add("音樂播放器");
list.add("視頻播放器");
list.add("錄音");
list.add("調頻廣播");
list.add("自編鈴聲");
list.add("更多鈴聲");// 調用ArrayAdapter的構造函數來創建ArrayAdapter對象
// 第一個參數是指上下文對象
// 第二個參數是指下列列表中每個菜單的樣式
// 第三個參數是指定了TextView控件的ID
// 第四個參數是下拉列表中的內容
@SuppressWarnings({ "rawtypes", "unchecked" })
ArrayAdapter arrayAdapter = new ArrayAdapter(this, R.layout.spinner,
R.id.TextViewID, list);
// 將ArrayAdapter添加到Spinner中去
spinnerID.setAdapter(arrayAdapter);
// 設置下拉菜單的名字
spinnerID.setPrompt("多媒體");// 爲spinner設置監聽器
spinnerID.setOnItemSelectedListener(new SpinnerListener());}
// 每當點擊一個條目時就會跳轉到另一個與之對應的頁面
class SpinnerListener implements OnItemSelectedListener {public void onItemSelected(AdapterView<?> adapterView, View view,
int position, long id) {
// TODO Auto-generated method stub
String selected = adapterView.getItemAtPosition(position)
.toString();
System.out.println(selected);
}public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
System.out.println("nothingSelected");
}}
}
spinner.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:id="@+id/TextViewID" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textSize="9pt" android:textColor="#FF00" /> </LinearLayout>