android--Spinner(菜單下拉控件)

得到的效果圖如下:

 

一、首先要在佈局文件中加個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>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章