Spinner允许您从下拉菜单中选择一个项目
例如。使用Gmail应用程序时,将显示如下所示的下拉菜单,您需要从下拉菜单中选择一个项目。

Spinner Example
示例
本示例演示计算机的类别,您需要从类别中选择一个类别。
以下是修改后的主要Activity文件src/com.example.spinner/AndroidSpinnerExampleActivity.java的内容。
package com.example.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.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;
import android.widget.AdapterView.OnItemSelectedListener;
class AndroidSpinnerExampleActivity extends Activity implements OnItemSelectedListener{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
</span><span class="com">//Spinner element</span><span class="pln">
</span><span class="typ">Spinner</span><span class="pln"> spinner </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="typ">Spinner</span><span class="pun">)</span><span class="pln"> findViewById</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">id</span><span class="pun">.</span><span class="pln">spinner</span><span class="pun">);</span><span class="pln">
</span><span class="com">//Spinner click listener</span><span class="pln">
spinner</span><span class="pun">.</span><span class="pln">setOnItemSelectedListener</span><span class="pun">(</span><span class="kwd">this</span><span class="pun">);</span><span class="pln">
</span><span class="com">//Spinner Drop down elements</span><span class="pln">
</span><span class="typ">List</span><span class="pun"><</span><span class="typ">String</span><span class="pun">></span><span class="pln"> categories </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">ArrayList</span><span class="pun"><</span><span class="typ">String</span><span class="pun">>();</span><span class="pln">
categories</span><span class="pun">.</span><span class="kwd">add</span><span class="pun">(</span><span class="str">"Automobile"</span><span class="pun">);</span><span class="pln">
categories</span><span class="pun">.</span><span class="kwd">add</span><span class="pun">(</span><span class="str">"Business Services"</span><span class="pun">);</span><span class="pln">
categories</span><span class="pun">.</span><span class="kwd">add</span><span class="pun">(</span><span class="str">"Computers"</span><span class="pun">);</span><span class="pln">
categories</span><span class="pun">.</span><span class="kwd">add</span><span class="pun">(</span><span class="str">"Education"</span><span class="pun">);</span><span class="pln">
categories</span><span class="pun">.</span><span class="kwd">add</span><span class="pun">(</span><span class="str">"Personal"</span><span class="pun">);</span><span class="pln">
categories</span><span class="pun">.</span><span class="kwd">add</span><span class="pun">(</span><span class="str">"Travel"</span><span class="pun">);</span><span class="pln">
</span><span class="com">//Creating adapter for spinner</span><span class="pln">
</span><span class="typ">ArrayAdapter</span><span class="pun"><</span><span class="typ">String</span><span class="pun">></span><span class="pln"> dataAdapter </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">ArrayAdapter</span><span class="pun"><</span><span class="typ">String</span><span class="pun">>(</span><span class="kwd">this</span><span class="pun">,</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">R</span><span class="pun">.</span><span class="pln">layout</span><span class="pun">.</span><span class="pln">simple_spinner_item</span><span class="pun">,</span><span class="pln"> categories</span><span class="pun">);</span><span class="pln">
</span><span class="com">//Drop down layout style - list view with radio button</span><span class="pln">
dataAdapter</span><span class="pun">.</span><span class="pln">setDropDownViewResource</span><span class="pun">(</span><span class="pln">android</span><span class="pun">.</span><span class="pln">R</span><span class="pun">.</span><span class="pln">layout</span><span class="pun">.</span><span class="pln">simple_spinner_dropdown_item</span><span class="pun">);</span><span class="pln">
</span><span class="com">//attaching data adapter to spinner</span><span class="pln">
spinner</span><span class="pun">.</span><span class="pln">setAdapter</span><span class="pun">(</span><span class="pln">dataAdapter</span><span class="pun">);</span><span class="pln">
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
//On selecting a spinner item
String item = parent.getItemAtPosition(position).toString();
</span><span class="com">//Showing selected spinner item</span><span class="pln">
</span><span class="typ">Toast</span><span class="pun">.</span><span class="pln">makeText</span><span class="pun">(</span><span class="pln">parent</span><span class="pun">.</span><span class="pln">getContext</span><span class="pun">(),</span><span class="pln"> </span><span class="str">"Selected: "</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> item</span><span class="pun">,</span><span class="pln"> </span><span class="typ">Toast</span><span class="pun">.</span><span class="pln">LENGTH_LONG</span><span class="pun">).</span><span class="pln">show</span><span class="pun">();</span><span class="pln">
}
public void onNothingSelected(AdapterView<?> arg0) {
//TODO Auto-generated method stub
}
}
将 res/layout/activity_main.xml 的内容修改为以下内容
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:padding="10dip" android:layout_width="fill_parent" android:layout_height="wrap_content"><TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="10dip" android:text="Category:" android:layout_marginBottom="5dp"/>
<Spinner android:id="@+id/spinner" android:layout_width="fill_parent" android:layout_height="wrap_content" android:prompt="@string/spinner_title"/>
</LinearLayout>
将 res/values/string.xml 修改为以下内容
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">AndroidSpinnerExample</string> </resources>
这是默认的 AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.spinner" >
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
</span><span class="tag"><activity</span><span class="pln">
</span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"com.example.spinner.AndroidSpinnerExampleActivity"</span><span class="pln">
</span><span class="atn">android:label</span><span class="pun">=</span><span class="atv">"@string/app_name"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><intent-filter></span><span class="pln">
</span><span class="tag"><action</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.intent.action.MAIN"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"><category</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.intent.category.LAUNCHER"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"></intent-filter></span><span class="pln">
</span><span class="tag"></activity></span><span class="pln">
</application>
</manifest>
点击运行
工具栏中的图标。在启动应用程序之前,Android Studio将显示以下窗口,以选择要在其中运行Android应用程序的选项。

如果单击按钮,它将显示一个下拉菜单,如下所示