得到的效果图如下:
一、首先要在布局文件中加个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>