无涯教程-Android - Spinner函数

114 阅读2分钟

Spinner允许您从下拉菜单中选择一个项目

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

Spinner

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">&lt;</span><span class="typ">String</span><span class="pun">&gt;</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">&lt;</span><span class="typ">String</span><span class="pun">&gt;();</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">&lt;</span><span class="typ">String</span><span class="pun">&gt;</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">&lt;</span><span class="typ">String</span><span class="pun">&gt;(</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">&lt;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">&gt;</span><span class="pln">
  
     </span><span class="tag">&lt;intent-filter&gt;</span><span class="pln">
        </span><span class="tag">&lt;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">/&gt;</span><span class="pln">
        </span><span class="tag">&lt;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">/&gt;</span><span class="pln">
     </span><span class="tag">&lt;/intent-filter&gt;</span><span class="pln">
  
  </span><span class="tag">&lt;/activity&gt;</span><span class="pln">
  

</application> </manifest>

点击运行 Eclipse Run Icon 工具栏中的图标。在启动应用程序之前,Android Studio将显示以下窗口,以选择要在其中运行Android应用程序的选项。

Anroid Spinner

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

Android spinner_result

参考链接

www.learnfk.com/android/and…