Android Spinner控件详解

Spinner 类图

android.widget
类 Spinner
java.lang.Object
  android.view.View
      android.view.ViewGroup
          android.widget.AdapterView<SpinnerAdapter>
              android.widget.AbsSpinner
                  android.widget.Spinner

Spinner 意指下拉列表组件。

以下为android官网文档内容。

布局文件中加入Spinner元素标签

<Spinner
    android:id="@+id/planets_spinner"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" />

To populate the spinner with a list of choices, you then need to specify a SpinnerAdapter in your Activity orFragment source code.

为了给spinner增加选择项,你需要在你的Activity或者Fragment中使用一个特定的SpinnerAdapter对象作为数据源绑定到Spinner对象上。

The choices you provide for the spinner can come from any source, but must be provided through anSpinnerAdapter, such as an ArrayAdapter if the choices are available in an array or a CursorAdapter if the choices are available from a database query.

虽然你可以给spinner提供任一数据源,但是这种数据源必须是实现SpinnerAdapter接口的。例如ArrayAdapter。如果选择从数据库中查询得到数据,那么你可以使用CursorAdapter这种Adapter作为数据源。

可以使用string数组。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="planets_array">
        <item>Mercury</item>
        <item>Venus</item>
        <item>Earth</item>
        <item>Mars</item>
        <item>Jupiter</item>
        <item>Saturn</item>
        <item>Uranus</item>
        <item>Neptune</item>
    </string-array>
</resources>

With an array such as this one, you can use the following code in your Activity or Fragment to supply the spinner with the array using an instance of ArrayAdapter:

如果使用string数组,你需要在你的Activity或者Fragment中使用ArrayAdapter。

Spinner spinner = (Spinner) findViewById(R.id.spinner);
// Create an ArrayAdapter using the string array and a default spinner layout
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
        R.array.planets_array, android.R.layout.simple_spinner_item);
// Specify the layout to use when the list of choices appears
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// Apply the adapter to the spinner
spinner.setAdapter(adapter);

静态方法 createFromResource(Context context, int textArrayResId, int textViewResId )

参数context       这里使用this 意指Activity

参数textArrayResId   这里使用R.array.plants_array  数据来源

参数textViewResId    这里使用android.R.layout.simple_spinner_item(android提供 也可以自己定制) Spinner的布局样式

You should then call setDropDownViewResource(int) to specify the layout the adapter should use to display the list of spinner choices (simple_spinner_dropdown_item is another standard layout defined by the platform).

可以调用 setDropDownViewResource(int) 去指定spinner列表中选项的布局和样式。

如何响应用户的选择,实现OnItemSelectedListener接口

public class SpinnerActivity extends Activity implements OnItemSelectedListener {
    ...

    public void onItemSelected(AdapterView<?> parent, View view,
            int pos, long id) {
        // An item was selected. You can retrieve the selected item using
        // parent.getItemAtPosition(pos)
    }

    public void onNothingSelected(AdapterView<?> parent) {
        // Another interface callback
    }
}

The AdapterView.OnItemSelectedListener requires the onItemSelected() and onNothingSelected()callback methods.

其中此接口需要实现其中的两个方法

Then you need to specify the interface implementation by calling setOnItemSelectedListener():(指定spinner对象实现OnItemSelectedListener接口)

Spinner spinner = (Spinner) findViewById(R.id.spinner);
spinner.setOnItemSelectedListener(this);
时间: 2024-12-26 17:17:00

Android Spinner控件详解的相关文章

Android实战简易教程-第一枪(Spinner控件详解)

本教程简单实用,大家喜欢的话可以关注我,谢谢! 下拉列表框是一种常见的图形组件,与其他选择组件相比,可以有效的节省屏幕空间,在Android中可以使用android.widget.Spinner类来实现. 下拉列表框中的列表项有以下两种配置方式. 方式一.通过资源文件配置,例如定义一个values\city_data.xml的文件,在定义数据内容时需要使用<string-array>元素指定,定义内容如下: <?xml version="1.0" encoding=&

Android GridView 控件详解

1 去除边框. android:listSelector="@null" 2 3

asp.net验证控件详解

ASP.NET验证控件详解     现在ASP.NET,你不但可以轻松的实现对用户输入的验证,而且,还可以选择验证在服务器端进行还是在客户端进行,再也不必考虑那么多了,程序员们可以将重要精力放在主程序的设计上了. ASP.NET公有六种验证控件,分别如下: 控件名           功能描叙 RequiredFieldValidator(必须字段验证) 用于检查是否有输入值 CompareValidator(比较验证) 按设定比较两个输入 RangeValidator(范围验证) 输入是否在指

IOS—UITextFiled控件详解

IOS—UITextFiled控件详解 //初始化textfield并设置位置及大小 UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(20, 20, 130, 30)]; //设置边框样式,只有设置了才会显示边框样式 text.borderStyle = UITextBorderStyleRoundedRect; typedef enum { UITextBorderStyleNone, UITextBorderS

ASP.NET 验证控件详解

body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI",Tahoma,Helvetica,Sans-Serif,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLiU,serif; font-size: 10.5pt; line-height: 1.5;

lodoop打印控件详解

注意:使用此打印控件需要引入(在我上传的Demo中都有): install_lodop32.exe install_lodop64.exe LodopFuncs.js jquery-1.10.0.min.js 具体Demo下载地址: http://download.csdn.net/download/l294333475/7697807 <%@ page language="java" import="java.util.*" pageEncoding=&qu

Android——spinner控件实现读取xml资源,省、市两级互动

(1)首先在res文件夹下面的values中创建一个省市arrays.xml文件夹,如下 <?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="province"> <item>-省份-</item> <item>河北省</item> <item>山西省</i

android:Spinner控件的使用

1.效果图 2.创建页面文件(main.xml) <Spinner android:id="@+id/spinner1" android:layout_width="match_parent" android:layout_height="wrap_content" /> <TextView android:id="@+id/tvResult" android:layout_width="match

Android spinner控件

spinner控件是Android中下拉控件,现在介绍它两种用法.第一种,从资源文件中获取下拉值:第二种,从代码中获取下拉值. 第一种,首先要在资源文件中把值写好: <?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">spinner</string> <string name="acti