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.
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);
// Spinner element
Spinner spinner = (Spinner) findViewById(R.id.spinner);
// Spinner click listener
spinner.setOnItemSelectedListener(this);
// Spinner Drop down elements
List<String> categories = new ArrayList<String>();
categories.add("Automobile");
categories.add("Business Services");
categories.add("Computers");
categories.add("Education");
categories.add("Personal");
categories.add("Travel");
// Creating adapter for spinner
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, categories);
// Drop down layout style - list view with radio button
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// attaching data adapter to spinner
spinner.setAdapter(dataAdapter);
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
// On selecting a spinner item
String item = parent.getItemAtPosition(position).toString();
// Showing selected spinner item
Toast.makeText(parent.getContext(), "Selected: " + item, Toast.LENGTH_LONG).show();
}
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" >
<activity
android:name="com.example.spinner.AndroidSpinnerExampleActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
让我们尝试运行 AndroidSpinnerExample 应用程序。我假设您在进行环境设置时创建了 AVD。要从 Android Studio 运行应用程序,请打开项目的 activity 文件之一,然后单击工具栏上的运行 Eclipse 图标。Android studio 在您的 AVD 上安装应用程序并启动它,如果您的设置和应用程序一切正常,它将显示以下模拟器窗口:
如果单击 Spinner 按钮,它将显示一个下拉菜单,如下所示: