Android UI组件Spinner下拉列表详解

Spinner下拉列表

该布局对应的关系图:

常用属性:android:entries(指定spinner要显示的字符串资源。必须是在strings资源文件中定义的字符串资源)android:spinnerMode(spinner的模式,枚举值有两个值dialog弹窗显示和dropdown下拉显示)android:dropDownWidth(下拉框的宽度,单位通常是dp)android:prompt(当spinnerMode的值是dialog时,弹出的对话框式的下列列表的提示。如果
spinnerMode的值是dropdown时没有效果。注意:此处的值不能直接使用直接字符串,
必须使用引用(字符串资源))

1.通过entries设置数据项,在values文件夹下的strings中添加数据的值

在strings.xml中添加一组array数据项,然后通过在entries中设置就可以设置对应的值

<Spinner
    android:layout_width="match_parent"
    android:entries="@array/data"//资源文件设置数据
    android:layout_height="wrap_content">
 </Spinner>

2.设置android:spinnerMode:

<Spinner
    android:id="@+id/spinner"
    android:layout_width="match_parent"
    android:entries="@array/data"
    android:spinnerMode="dialog"
    android:layout_height="wrap_content">
  </Spinner>

值为dialog的显示为弹框显示

值如果为dropdown的显示如下:

android:dropDownWidth设置下拉宽度

<Spinner
    android:id="@+id/spinner"
    android:layout_width="match_parent"
    android:entries="@array/data"
    android:spinnerMode="dropdown"
    android:dropDownWidth="70dp"
    android:layout_height="wrap_content">
  </Spinner>

效果如下图:

数据源的获取方式:通过ArrayAdapter适配器设置数据数据>

什么是适配器:将控件在加载数据过程中的同样的部分 抽取为代码,每次加载的时候都调用这部分代码,生成
要返回的内容,类似于模具
关于ArrayAdapter简单介绍下:
ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_spinner_dropdown_item,data);

关于ArrayAdapter构造方法的说明:

1、ArrayAdapter(context, resource, objects)
参数一:上下文对象
参数二:布局文件的id,注意该布局文件有且只能有一个TextView标签
参数三:原始数据,List集合或数组都可以。
2、ArrayAdapter(context, resource, textViewResourceId, objects)
参数一:上下文对象
参数二:布局文件的id,注意该布局文件中至少有一个TextView标签
参数三:参数二布局文件中要显示数据的TextView的id
参数四:原始数据,List集合或数组都可以。

public class MainActivity extends AppCompatActivity {
  private String[] data;
  private List<String> data1;
  private Spinner spinner;
  private ArrayAdapter<String> adapter;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.spinner);
    spinner = (Spinner)findViewById(R.id.spinner);
    data = getResources().getStringArray(R.array.data);
    data1 = new ArrayList<>();
    for(int i = 1; i < 10; i++){
      data1.add("这是第" + i +"个");
    }
    //data可以修改为data1,数据可以是数组也可以是集合
    adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_dropdown_item,data);
    spinner.setAdapter(adapter);
  }
}

监听事件

对于Spinner使用的监听事件为:setOnItemSelectedListener(OnItemSelectedListener listener)

public class SpinnerActivity extends Activity implements OnItemSelectedListener {

  /**
  * 当item被选中时,会调用此方法
  */
  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)
  }
  /**
  * 当数据项的值设置为空时,就会调用此方法,通过调用adapter.clear()方法清空数据,并且刷新界面
  * 时,会调用次方法
  */
  public void onNothingSelected(AdapterView<?> parent) {
    // Another interface callback
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Android中Spinner(下拉框)控件的使用详解

    android给我们提供了一个spinner控件,这个控件主要就是一个列表,那么我们就来说说这个控件吧,这个控件在以前的也看见过,但今天还是从新介绍一遍吧. Spinner位于 android.widget包下,每次只显示用户选中的元素,当用户再次点击时,会弹出选择列表供用户选择,而选择列表中的元素同样来自适配器.Spinner是View类得一个子类. 1.效果图 2.创建页面文件(main.xml) <Spinner android:id="@+id/spinner1" and

  • Android Spinner列表选择框的应用

    Android  Spinner列表选择框的应用 Spinner 是 Android 的列表选择框,不过 spinner 并不需要显示下拉列表,而是相当于弹出一个菜单供用户选择. Spinner 属性: ● android:spinnerMode:列表显示的模式,有两个选择,为弹出列表(dialog)以及下拉列表(dropdown),如果不特别设置,为下拉列表. ● android:entries:使用<string-array.../>资源配置数据源. ● android:prompt:对当

  • Android 列表选择框 Spinner详解及实例

    Android 列表选择框 Spinner详解及实例 Spinner 是 Android 的列表选择框,不过 spinner 并不需要显示下拉列表,而是相当于弹出一个菜单供用户选择. Spinner 属性: ● android:spinnerMode:列表显示的模式,有两个选择,为弹出列表(dialog)以及下拉列表(dropdown),如果不特别设置,为下拉列表. ● android:entries:使用<string-array.../>资源配置数据源. ● android:prompt:

  • Java File类的详解及简单实例

    Java File类的详解及简单实例 1. File():构造函数,一般是依据文件所在的指定位置来创建文件对象.  CanWrite():返回文件是否可写. CanRead():返回文件是否可读. CompareTo(File pathname):检查指定文件路径间的顺序. Delet():从文件系统内删除该文件. DeleteOnExit():程序顺利结束时从系统中删除文件. Equals(Object obj):检查特定对象的路径名是否相等. Exists():判断文件夹是否存在. GetA

  • Android编程之下拉菜单Spinner控件用法示例

    本文实例讲述了Android下拉菜单Spinner控件用法.分享给大家供大家参考,具体如下: activity_main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent

  • Android编程实现多列显示的下拉列表框Spinner功能示例

    本文实例讲述了Android编程实现多列显示的下拉列表框Spinner功能.分享给大家供大家参考,具体如下: 先上张效果图: 严格来说,这并不是一个下拉列表,只不过实现的效果很像是下拉列表 实现原理: 该下拉列表其实是一个AlertDialog.Builder,给它设置了一个以LinearLayout布局的View.该View内使用了一个GridView组件, 代码: package yyy.testandroid9; private Intent intent; private int ind

  • Android第三方开源下拉框NiceSpinner使用详解

    android原生的下拉框Spinner基本上可以满足Android开发对于下拉选项的设计需求,但现在越来越流行的下拉框不满足于Android原生提供的下拉框Spinner所提供的设计样式,而改用自定制或者第三方设计的下拉框Spinner. NiceSpinner是一个第三方开源的下拉框Spinner,其在github上的项目主页是:https://github.com/arcadefire/nice-spinner  NiceSpinner原设计效果如动图所示: 但是通常开发者对于可能还需要对

  • Android中使用Spinner实现下拉列表功能

    Spinner Spinner是一个列表选择框,会在用户选择后,展示一个列表供用户进行选择.Spinner是ViewGroup的间接子类,它和其他的Android控件一样,数据需要使用Adapter进行封装. 1,Demo展示图片 2,布局代码 //(layout)activity_main <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http

  • Android UI组件Spinner下拉列表详解

    Spinner下拉列表 该布局对应的关系图: 常用属性:android:entries(指定spinner要显示的字符串资源.必须是在strings资源文件中定义的字符串资源)android:spinnerMode(spinner的模式,枚举值有两个值dialog弹窗显示和dropdown下拉显示)android:dropDownWidth(下拉框的宽度,单位通常是dp)android:prompt(当spinnerMode的值是dialog时,弹出的对话框式的下列列表的提示.如果 spinne

  • React中immutable的UI组件渲染性能详解

    目录 引言 UI组件渲染性能 方案一:shallow compare 方案二:直接对前后的对象进行deepCompare 总结: 引言 react 一直遵循UI = fn(state) 的原则,有时候我们的state却和UI不同步 有时候组件本身在业务上不需要渲染,却又会再一次re-render.之前在项目中遇到的一些问题,这里做一个简单的分析,大家可以一起交流一下 UI组件渲染性能 react每次触发页面的更新可大致分成两步: render(): 主要是计算v-dom的diff commit阶

  • Android UI:ListView - SimpleAdapter实例详解

    Android UI:ListView -- SimpleAdapter SimpleAdapter是扩展性最好的适配器,可以定义各种你想要的布局,而且使用很方便. layout : <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layo

  • Android四大组件之BroadcastReceiver详解

    BroadcastReceiver(广播接收器),在Android开发中,BroadcastReceiver的应用场景非常多,属于Android四大组件之一. Android 广播分为两个角色:广播发送者.广播接收者 一. 作用 用于监听 / 接收 应用发出的广播消息,并做出响应 应用场景: 不同组件之间通信(包括应用内 / 不同应用之间) 与 Android 系统在特定情况下的通信(如当电话呼入时.网络可用时) 多线程通信 二.实现原理 Android中的广播使用了设计模式中的观察者模式:基于

  • Android四大组件之Service详解

    一.Service简介 Service是Android程序中四大基础组件之一,它和Activity一样都是Context的子类,只不过它没有UI界面,是在后台运行的组件. Service是Android中实现程序后台运行的解决方案,它非常适用于去执行那些不需要和用户交互而且还要求长期运行的任务.Service默认并不会运行在子线程中,它也不运行在一个独立的进程中,它同样执行在UI线程中,因此,不要在Service中执行耗时的操作,除非你在Service中创建了子线程来完成耗时操作. 二.Serv

  • Android TabHost组件使用方法详解

    最近研究了一下Contacts源码,仿照上面自己写了一个TabHostTest程序,现整理如下: main.xml布局文件: <?xml version="1.0" encoding="utf-8"?> <TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/tabhost" and

  • Android列表组件ListView使用详解之动态加载或修改列表数据

    在使用ListView组件来显示列表数据时,有的时候我们需要改变列表中的数据,有以下方法: 1.重新给ListView组件设置适配器 这种方法重新创建了ListView,效率不好. 2.使用适配器中的方法 /** * Notifies the attached observers that the underlying data has been changed * and any View reflecting the data set should refresh itself. */ pu

  • Ionic3 UI组件之autocomplete详解

    无论是web开发还是app开发,autocomplete是常用组件之一. 可惜截止到目前,ionic官方并未提供此组件. ionic2-autocomplete是GitHub上的开源的Ionic2组件,本文将讲解如何在自己的项目中使用它. 组件地址:https://github.com/kadoshms/ionic2-autocomplete 1)npm install ionic2-auto-complete --save 2)打开app.module.ts,添加:import { AutoC

  • Android四大组件之Activity详解

    一.Activity的生命周期 首先,我们来了解一下Activity典型的生命周期 一个Activity从启动到结束会以如下顺序经历整个生命周期: onCreate()->onStart()->onResume()->onPause()->onStop()->onDestory().包含了六个部分,还有一个onRestart()没有调用, 下面就来一一介绍 onCreate():当 Activity 第一次创建时会被调用.当 Activity 第一次创建时会被调用.这是生命周

  • Android之Spinner用法详解

    目录 一.Spinner的两种展示样式 二.Spinner相关方法 三.Spinner用法举例 XML布局文件activity_main.xml 选中文字样式item_select.xml 列表其他文字样式item_dropdown.xml Java代码MainActivity.java 四.dropdown模式下的列表分割线 一.Spinner的两种展示样式 下拉列表的展示方式有两种,一种是在当前下拉框的正下方展示列表,此时把spinnerMode属性设置为dropdown;另一种是在页面中部

随机推荐