Android系统自带Spinner+Adapter基础

属性:android:spinnerMode="" 下拉菜单的展示方式
属性值:dropdown-下拉方式(默认的) dialog-对话框方式
如果下拉方式是dialog,那么可以指定标题android:prompt="@string/title"(只能引用,不能直接写文字)
android:entries="@array/books" 填充下拉菜单的内容

填充方式
1.属性填充:数据源不会经常发生变化,使用该方式
在xml文件中定义数据源,然后在spinner中通过属性调用
2.使用ArrayAdapter填充数据
适用于:item只有一个文本,不能显示图片
数据源:自定义数组或list
步骤:a.得到控件并初始化 b.得到数据源 c.得到适配器
第一种方式 数据源是String[] 三个参数 , 在这个Activity中有2个页面
/**
* context 上下文对象
* resource 每个Item的布局文件(文件中只能有一个TextView控件,没有布局和其他控件)
* objects 数据源
*/
ArrayAdapter adapter = new ArrayAdapter(
this,
android.R.layout.simple_spinner_item,
data);

 第二种方式 数据源是String[]  四个参数

  /**
   * context          上下文对象
   * resource         每个Item的布局文件(可以有布局,但是必须有TextView控件)
   * textViewResourceId   布局文件中的TextView的ID
   * objects      数据源
   * 
   */
   ArrayAdapter<String> adapter = new ArrayAdapter<String>(
          this, 
          R.layout.spinner_item_02, 
          R.id.tv, 
          data);


第三种方式   数据源List<String>  三个参数  在这个Activity中有2个页面

  /**
  * context   上下文对象
  * resource  每个Item的布局文件(文件中只能有一个TextView控件,没有布局和其他控件)
  * objects   数据源
  */
  ArrayAdapter<String> adapter = new ArrayAdapter<String>(
          this, 
          android.R.layout.simple_spinner_item, 
          data);




 第四种方式 数据源是List<String>  四个参数

  /**
   * context          上下文对象
   * resource         每个Item的布局文件(可以有布局,但是必须有TextView控件)
   * textViewResourceId   布局文件中的TextView的ID
   * objects      数据源
   * 
   */
   ArrayAdapter<String> adapter = new ArrayAdapter<String>(
          this, 
          R.layout.spinner_item_02, 
          R.id.tv, 
          data);

3, 使用SimpleAdapter 填充数据
适用场景 图文混排,图片来自本地

数据源     List<Map<String,Object>>

步骤: 

    1, 控件,  得到控件并且初始化

    2, 得到数据源

    3, 得到适配器

    4, 为控件设置适配器


    /**
     * context  上下文对象 
     * data     数据源
     * resource 每个Item的布局页面
     * from   String[]  数据源中key的数组
     * to     int[]     布局页面中id的数组
     */
    SimpleAdapter adapter = new SimpleAdapter(
                this, 
                data, 
                R.layout.spinner_item, 
                new String[]{"icon","name","age"}, 
                new int[]{R.id.icon,R.id.name,R.id.age});

作者:哇楼主
链接:https://www.jianshu.com/p/f548264d970a

### 回答1: Android Spinner 是一个下拉列表控件,用于在列表中显示多个选项,并允许用户从中选择一个。为了将数据显示在 Spinner 中,需要使用一个适配器(Adapter)来为 Spinner 提供数据源。 下面是一个简单的 Spinner 适配器示例: 1. 首先,创建一个数据源,它可以是任何类型的集合(如数组、列表等): ``` List<String> dataList = new ArrayList<>(); dataList.add("Option 1"); dataList.add("Option 2"); dataList.add("Option 3"); ``` 2. 创建一个 ArrayAdapter 对象来将数据源与 Spinner 控件关联起来: ``` ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, dataList); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(adapter); ``` 这里,ArrayAdapter 的构造函数需要传入三个参数:上下文、Spinner 控件使用的布局以及数据源。setDropDownViewResource() 方法用于为 Spinner 中的每个选项指定下拉列表的布局。 以上代码中,数据源为字符串列表,所以 ArrayAdapter 的泛型类型为 String。如果数据源是其他类型的集合,则需要相应地修改 ArrayAdapter 的泛型类型。 除了 ArrayAdapter,还有其他类型的适配器可用于 Spinner,例如 CursorAdapter 和 SimpleCursorAdapter,它们可用于显示从数据库中检索的数据。 ### 回答2: Android中的Spinner是一个下拉列表控件,它允许用户从预定义的选项中选择一个值。Spinner的显示和选择功能由Adapter控制。 AdapterSpinner中扮演着重要的角色,它负责管理Spinner的数据来源并将数据显示在Spinner中。通过SpinnerAdapter接口,我们可以自定义Spinner的样式和布局。 在使用Spinner时,我们需要创建一个适配器来将数据绑定到Spinner上。适配器可以是ArrayAdapter、CursorAdapter、SimpleAdapter等。适配器通过getView()方法来指定Spinner每个选项的视图,并将数据显示在Spinner中。 适配器的工作原理是通过getView()方法将每个选项的数据和布局进行绑定,并返回一个视图给Spinner显示。同时,适配器还可以为每个选项设置点击事件监听器。 使用SpinnerAdapter时,需要注意几个重要的方法。首先是setAdapter()方法,它用于为Spinner设置适配器。其次是getSelectedItem(),它可以获取用户选择的选项值。还有getCount()方法,用于获取Spinner中选项的数量。 另外,为了实现自定义的样式和布局,我们可以继承BaseAdapter类来创建自定义的适配器。在自定义适配器中,我们可以重写父类的getView()方法来实现不同的选项显示效果。 总而言之,SpinnerAdapterAndroid开发中非常常见和重要的控件和接口,它们能够方便地实现下拉列表的显示和选择功能。通过自定义适配器,我们可以轻松地实现Spinner的不同样式和布局。 ### 回答3: Android Spinner Adapter 是一个可以用来为 Spinner 组件提供数据源的适配器。在 Android 中,Spinner 是一个下拉列表的组件,用户可以通过点击下拉箭头选择其中的一项。为了提供下拉列表中的选项数据,我们需要使用 Spinner AdapterSpinner Adapter 是一个通用的接口,我们可以通过实现该接口来创建自定义的 Adapter 来为 Spinner 提供数据。我们可以通过重写 Adapter 的方法来定义列表的样式、数据结构和展示方式。 Spinner Adapter 中最重要的方法是 getCount()、getItem() 和 getView()。getCount() 用于返回列表的长度,即下拉列表中有多少个选项。getItem() 用于返回特定位置的数据项,而 getView() 用于获得列表中每个选项的视图。 在使用 Spinner Adapter 的时候,我们可以根据不同的数据类型选择不同的 Adapter。例如,如果数据是一个简单的字符串列表,我们可以使用 ArrayAdapter;如果数据是一个复杂的对象列表,我们可以使用 BaseAdapter 或者 RecyclerView.Adapter。 如果我们希望自定义下拉列表的样式,我们还可以使用自定义的布局资源文件来为 Adapter 设置列表项的布局。我们可以通过重写 getView() 方法来实现这个功能,可以将自定义的布局资源文件与 Adapter 关联,同时可以使用 findViewById() 方法来获取布局中的视图元素,并将数据填充到这些视图中。 总而言之,Android Spinner Adapter 是一个用于为 Spinner 提供数据源的接口。通过实现 Adapter 接口并重写其中的方法,我们可以创建自定义的 Adapter 来为 Spinner 提供数据,并可以自定义下拉列表的样式和布局。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值