Android(安卓)Spinner 控件

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


实例

此实例演示了计算机的类别,您需要从类别中选择一个类别。

要尝试此实例,您需要在根据以下步骤开发应用程序后在上的实际设备上运行此程序。

步骤描述
1您将使用 Android studio 创建一个 Android 应用程序,并在 com.example.spinner 包下将其命名为 AndroidSpinnerExample
2修改 src/AndroidSpinnerExampleActivity.java 文件来创建一个简单的列表视图,其中包含显示为 Spinner 的项。
3修改 res/layout/activity_main.xml 文件以添加相应的 xml 代码。
4无需定义默认字符串常量 Android studio 负责 string.xml 中的默认字符串常量。
5运行应用程序并选择一个正在运行的 android 设备,在其上安装应用程序并验证结果。

以下是修改后的主要活动文件的内容 src/com.example.spinner/AndroidSpinnerExampleActivity.java.

  1. package com.example.spinner;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import android.app.Activity;
  5. import android.os.Bundle;
  6. import android.view.View;
  7. import android.widget.AdapterView;
  8. import android.widget.ArrayAdapter;
  9. import android.widget.Spinner;
  10. import android.widget.Toast;
  11. import android.widget.AdapterView.OnItemSelectedListener;
  12. class AndroidSpinnerExampleActivity extends Activity implements OnItemSelectedListener{
  13. @Override
  14. public void onCreate(Bundle savedInstanceState) {
  15. super.onCreate(savedInstanceState);
  16. setContentView(R.layout.main);
  17. // Spinner element
  18. Spinner spinner = (Spinner) findViewById(R.id.spinner);
  19. // Spinner click listener
  20. spinner.setOnItemSelectedListener(this);
  21. // Spinner Drop down elements
  22. List<String> categories = new ArrayList<String>();
  23. categories.add("Automobile");
  24. categories.add("Business Services");
  25. categories.add("Computers");
  26. categories.add("Education");
  27. categories.add("Personal");
  28. categories.add("Travel");
  29. // Creating adapter for spinner
  30. ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, categories);
  31. // Drop down layout style - list view with radio button
  32. dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
  33. // attaching data adapter to spinner
  34. spinner.setAdapter(dataAdapter);
  35. }
  36. @Override
  37. public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
  38. // On selecting a spinner item
  39. String item = parent.getItemAtPosition(position).toString();
  40. // Showing selected spinner item
  41. Toast.makeText(parent.getContext(), "Selected: " + item, Toast.LENGTH_LONG).show();
  42. }
  43. public void onNothingSelected(AdapterView<?> arg0) {
  44. // TODO Auto-generated method stub
  45. }
  46. }

修改 res/layout/activity_main.xml 文件的内容如下:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:orientation="vertical"
  4. android:padding="10dip"
  5. android:layout_width="fill_parent"
  6. android:layout_height="wrap_content">
  7. <TextView
  8. android:layout_width="fill_parent"
  9. android:layout_height="wrap_content"
  10. android:layout_marginTop="10dip"
  11. android:text="Category:"
  12. android:layout_marginBottom="5dp"/>
  13. <Spinner
  14. android:id="@+id/spinner"
  15. android:layout_width="fill_parent"
  16. android:layout_height="wrap_content"
  17. android:prompt="@string/spinner_title"/>
  18. </LinearLayout>

修改 res/values/string.xml 如下:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <resources>
  3. <string name="app_name">AndroidSpinnerExample</string>
  4. </resources>

这个是默认的 AndroidManifest.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  3. package="com.example.spinner" >
  4. <application
  5. android:allowBackup="true"
  6. android:icon="@drawable/ic_launcher"
  7. android:label="@string/app_name"
  8. android:theme="@style/AppTheme" >
  9. <activity
  10. android:name="com.example.spinner.AndroidSpinnerExampleActivity"
  11. android:label="@string/app_name" >
  12. <intent-filter>
  13. <action android:name="android.intent.action.MAIN" />
  14. <category android:name="android.intent.category.LAUNCHER" />
  15. </intent-filter>
  16. </activity>
  17. </application>
  18. </manifest>

让我们尝试运行 AndroidSpinnerExample 应用程序。我假设您在进行环境设置时创建了 AVD。要从 Android Studio 运行应用程序,请打开项目的 activity 文件之一,然后单击工具栏上的运行 Eclipse Eclipse Run Icon 图标。Android studio 在您的 AVD 上安装应用程序并启动它,如果您的设置和应用程序一切正常,它将显示以下模拟器窗口:

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

分类导航