zoukankan      html  css  js  c++  java
  • Hello,Views(六)下拉框Spinner(附源码)

    前言

    本文根据官方教程适当翻译而来。(源码下载

    1.新建工程HelloSpinner

    2.在main.xml里面添加一个spinner,设置Android:promt属性,这是一个提示属性,同时为默认的textview修改Android:text属性,它们将引用同一个string文本,如何理解呢,看了下面的图应该有所意会了。实现的效果是下图中红圈内的文字提示:

    23

    局部的main.xml如下:

    <TextView 
    android:layout_width="match_parent"
    android:layout_height
    ="wrap_content"
    android:text
    ="@string/planet_prompt" />


    <Spinner
    android:id="@+id/spinner1"
    android:layout_width
    ="match_parent"
    android:layout_height
    ="wrap_content"
    android:prompt
    ="@string/planet_prompt"/>

    3.在onCreate()里面添加操作spinner的代码:

    @Override 
    public void onCreate(Bundle savedInstanceState)
    {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Spinner spinner = (Spinner) findViewById(R.id.spinner1);
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
    R.array.planets_array, android.R.layout.simple_spinner_item);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(adapter);
    spinner.setOnItemSelectedListener(new MyOnItemSelectedListener());
    }

    4.

    解释一下上面的两句ArrayAdapter.createFromResource(this,R.array.planets_array, android.R.layout.simple_spinner_item);和adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);关于前者它的函数原型如下

    public static ArrayAdapter<CharSequence> createFromResource(Context context, int textArrayResId, int textViewResId)
    参数:

    context 应用的上下文

    textArrayResId 数据源数组标识
    textViewResId 用于显示的布局view

    返回值:ArrayAdapter<CharSequence>

    结合本例, R.array.planets_array 标识了我们要用到的字符串数组.R.layout.simple_spinner_item 标识了系统定义的一个标准的Spinner的布局外观。

    而后者adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);定义的是spinner的每一个item的布局外观。

    5.为了响应用户选择下拉框中某一项的事件,还要添加一个OnItemSelectedListener监听,具体实现是,新建一个MyOnItemSelectedListener 类继承OnItemSelectedListener类,在其中重写两个方法onItemSelected(),onNothingSelected(),它们分别处理item被选中和没选的事件:

    public class MyOnItemSelectedListener implements OnItemSelectedListener 
    {

    public void onItemSelected(AdapterView<?> parent, View view, int pos, long id)
    {
    Toast.makeText(parent.getContext(),
    "The planet is " + parent.getItemAtPosition(pos).toString(), Toast.LENGTH_LONG)
    .show();
    }

    public void onNothingSelected(AdapterView parent)
    {
    // Do nothing.
    }
    }

    5.OK,运行。(源码下载

  • 相关阅读:
    Mysql 配置主从
    ZJ 虚拟机扩直接扩原磁盘
    Linux 配置samba
    mysql 5.6 升级5.7
    binlog作用
    删除全部binlog不影响数据库运行,类似Oracle的archivelog
    mysql清理binlog
    Perl计数器
    perl增量分析日志
    perl 获取更新部分日志
  • 原文地址:https://www.cnblogs.com/avenwu/p/2359525.html
Copyright © 2011-2022 走看看