zoukankan      html  css  js  c++  java
  • spinner

    微调框

    微调框提供一种方法,让用户可以从值集中快速选择一个值。默认状态下,微调框显示其当前所选的值。 触摸微调框可显示下拉菜单,其中列有所有其他可用值,用户可从中选择一个新值。

    您可以使用 Spinner 对象向您的布局中添加一个微调框。通常应在 XML 布局中使用 <Spinner> 元素来执行此操作。 例如:

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

    要使用选择列表填充微调框,还需要在 Activity 或 Fragment 源代码中指定 SpinnerAdapter

    数据源必须是 SpinnerAdapter 来提供。

    但是由于这些是其子类,所有他们肯定也是可以的

    例如,如果预先确定了微调框的可用选择,则可通过字符串资源文件中定义的字符串数组来提供这些选择。

    <?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>
    

    对于上例所示数组,可在 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() 方法允许从字符串数组创建 ArrayAdapter。 此方法的第三个参数是布局资源,其定义所选选择如何显示在微调框控件中。simple_spinner_item 布局由平台提供,是默认布局,除非您想为微调框外观定义自己的布局,否则应使用此布局。

    然后,应调用 setDropDownViewResource(int) 指定适配器应用于显示微调框选择列表的布局(simple_spinner_dropdown(下拉)_item 是平台定义的另一标准布局)。

    调用 setAdapter() 以将适配器应用到 Spinner

    响应用户选择


    当用户从下拉菜单中选择一个项目时,Spinner 对象会收到一个 on-item-selected 事件。

    要为微调框定义选择事件处理程序,请实现 AdapterView.OnItemSelectedListener 接口以及相应的 onItemSelected() 回调方法。例如,以下是 Activity 中的一个接口实现:

    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
        }
    }
    

    AdapterView.OnItemSelectedListener 需要 onItemSelected() 和 onNothingSelected() 回调方法。

    然后,您需要调用 setOnItemSelectedListener() 来指定接口实现:

    Spinner spinner = (Spinner) findViewById(R.id.spinner);
    spinner.setOnItemSelectedListener(this);
    

    如果您使用 Activity 或 Fragment 来实现 AdapterView.OnItemSelectedListener 接口(如上例),则可以传递 this 作为接口实例。

    有趣的属性:

    spinner 的下拉三角号的显示与不显示:  spinner 的 background 设置为 "@null" 时,spinner 的三角号就可以消失了,默认有三角号

    Spinner有两种显示形式,一种是下拉菜单,一种是弹出框,菜单显示形式是spinnerMode属性决定的:

    android:spinnerMode="dropdown"android:spinnerMode="dialog"

    entries: 直接在xml布局文件中绑定数据源android:entries="@array/languages"prompt:

    在Spinner弹出选择对话框的时候对话框的标题android:prompt="@string/dialog_title

  • 相关阅读:
    JAVA框架 Spring 事务
    JAVA框架 Spring 调用jdbcsuport简化开发
    JAVA框架 Spring JDBC模板
    JAVA框架 Spring AOP注解
    JAVA框架 Spring AOP--切入点表达式和通知类型
    JAVA框架 Spring AOP底层原理
    JAVA框架 Spring junit整合单元测试
    JAVA框架 Spring 注解注入
    JAVA框架 Spring 引入多个配置文件
    django序列化
  • 原文地址:https://www.cnblogs.com/BlueFire-py/p/8642014.html
Copyright © 2011-2022 走看看