`

09 - android Spinner 下拉列表

 
阅读更多

目标:

      掌握下拉列表Spinner的使用;

      可以通过程序配置Spinner显示内容;

      可以通过配置文件配置Spinner显示内容

通过本程序就应该发现,Spinner的核心问题就在于下啦数据内容的显示上。

下拉列表框也是一种常见的图形组件,它可以为用户提供列表的选择方式,与复选框或单选按钮相比还可以节省手机屏幕空间,在android中可以使用android.widget.Spinner类实现:

java.lang.Object
   ↳ android.view.View
   ↳ android.view.ViewGroup
   ↳ android.widget.AdapterView<T extends android.widget.Adapter>
   ↳ android.widget.AbsSpinner
   ↳ android.widget.Spinner

在Spinner类中的setAdapter()方法,表示的是设置下拉列表框的显示内容

SIpnnerAdapter的功能是一个适配器,会将锁需要的数据进行包装并放在Spinner之中。

既然现在对Spinner的核心问题在于内容的配置上,所以这里面就需要通过一下方式设置内容

配置列表项:

  在android中,可以直接在main.xml文件中定义”<Spinner>“节点,但是在定义此原生的时候却不能直接设置其显示的列表项,关于下拉列表框中的列表项有一下两种方式进行配置:

   方式一。直接通过资源文件配置:

  方式二:通过android.widget.ArrayAdapter类读取资源文件或是指定具体设置的数据;

   对于Spinner的内容可以直接在values文件夹之中定义若干个资源文件,例如,例如定义城市信息的下拉列表框,就可以定义一个city_data.xml

例如:方法一。

main.xml

 

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    android:orientation="vertical" >


    <TextView

        android:id="@+id/info_city"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:text="请选择你喜欢的城市:" />


    <Spinner

        android:id="@+id/mycity"

        android:prompt="@string/city_name"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:entries="@array/city_labels"

        />

</LinearLayout>

values包下面增加city_data.xml

 

<?xml version="1.0" encoding="utf-8"?>

<resources>


    <string-array name="city_labels">

        <item>北京</item>

        <item>南京</item>

        <item>上海</item>

    </string-array>


</resources>

 

方法二:通过android.widget.ArrayAdapter类

ArrayAdapter类的功能:有两个主要的功能:读取资源文件中定义的列表项,或者通过List集合设置列表项,此类中定义了如下几个常用的方法:

即:如果要使用ArrayAdapter配置下拉列表的内容,可以采用配置文件完成,为了演示以上两种实现形式,下面先采用配置文件读取方式完成。

例如:定义表示颜色下拉框:

       新建color_data.xml

 

<?xml version="1.0" encoding="utf-8"?>

<resources>


    <string-array name="color_labels">

        <item>红色</item>

        <item>绿色</item>

        <item>黄色</item>

    </string-array>


</resources>

这个配置文件将在ArrayAdapter类中进行读取。为了能够使用ArrayAdapter还需要定义spinner;

main.xml

 

 

    <TextView

        android:id="@+id/info_color"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:text="请选择你喜欢的颜色:" />


    <Spinner

        android:id="@+id/mycolor"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"/>

现在文件中不再添加任何信息,只是定义空的下拉列表框,而后在Activity程序中,要动态的配置

 

ArrayAdapter

extends BaseAdapter
implements Filterable

<!-- end header -->

java.lang.Object
   ↳ android.widget.BaseAdapter
   ↳

android.widget.ArrayAdapter<T>

 

 

 

 

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

Since: API Level 1

Creates a new ArrayAdapter from external resources. The content of the array is obtained through getTextArray(int).

 

用该方法读取所需要的信息

Activity类操作:

 

package com.sun.android;


import android.app.Activity;

import android.os.Bundle;

import android.widget.ArrayAdapter;

import android.widget.Spinner;


public class HelloWorld extends Activity {

private Spinner spiColor = null;// 表示要读取的颜色列表框

private ArrayAdapter<CharSequence> adapterColor = null;// 所有的数据都是String


/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);// 声明周期方法

super.setContentView(R.layout.main);// 设置要使用的布局管理器

this.spiColor = (Spinner) super.findViewById(R.id.mycolor);

this.spiColor.setPrompt("请选择你喜欢的颜色:");

this.adapterColor = ArrayAdapter.createFromResource(this,

R.array.city_labels, android.R.layout.simple_spinner_item);// 实例化ArrayAdapter

this.adapterColor.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);//换个风格

this.spiColor.setAdapter(this.adapterColor);//设置显示信息

}

}

 

    可以对于ArrayAdapter而言,除了读取资源文件之外,还可能需要通过程序动态生成,所以现在可以使用ArrayAdapter的另一种形式

   部分信息之后再慢慢写

 

 

 

 

 

分享到:
评论

相关推荐

    android studio,demo,Spinner下拉菜单多选的实现

    在Android开发中,Spinner是一个非常常见的控件,它通常用于展示一个下拉列表供用户选择。本教程将详细讲解如何在Android Studio 3.0.1环境下实现Spinner的多选功能,这对于创建交互式用户界面非常有用。 首先,...

    10. android Spinner 下拉列表

    这样,当用户在下拉列表中选择一个项目时,我们就可以得到通知: ```java spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView...

    修改spinner字体大小及颜色,还有列表样式

    以上就是如何自定义Android Spinner的字体大小、颜色以及下拉列表样式的步骤。在实际项目中,你可能还需要根据具体需求调整布局、添加图片等。在提供的`spinnerdemo`压缩包文件中,可能包含了示例代码,你可以参考...

    android自定义Spinner下拉菜单(下拉列表框)样式

    android自定义Spinner下拉菜单(下拉列表框)样式

    spinner下拉列表 demo

    本教程将详细讲解如何在Android应用中实现Spinner下拉列表的Demo。 首先,我们需要理解Spinner的基本结构。Spinner本质上是一个视图,它包含一个默认显示的选项和一个可下拉的列表。当用户点击Spinner时,会弹出一...

    Spinner下拉列表的应用

    通过上述步骤,你可以在Android应用中实现Spinner下拉列表的功能。无论是从XML配置还是Java代码动态设置,都可以根据项目需求灵活选择。理解并掌握这些知识点,将有助于构建更加丰富多样的用户界面。

    安卓三级联动省市联动多级联动相关-Android多级下拉列表菜单可向下选择3级子菜单.zip

    这个标题中的"安卓三级联动省市联动多级联动相关-Android多级下拉列表菜单可向下选择3级子菜单.zip"描述了一个Android应用组件,它允许用户通过一个多级下拉菜单来选择不同层次的选项,如国家、省份和城市,形成一个...

    Android--开发--PopupWindow下拉列表.rar

    在Android应用开发中,PopupWindow是一个非常实用的组件,它允许开发者在屏幕任意位置弹出一个窗口,通常用于实现各种快捷菜单、下拉列表等效果。这个“Android--开发--PopupWindow下拉列表”资源包可能包含了一系列...

    Android Spinner控件下拉列表框的实现

    在Android开发中,Spinner是一个非常常用的控件,它允许用户从一组预定义的选项中进行选择,通常以下拉列表的形式展示。Spinner控件在设计简洁的用户界面时特别有用,因为它可以节省屏幕空间,同时提供多选项选择的...

    安卓--级联下拉列表实现DEMO

    在Android中,我们可以使用Spinner控件来创建单个下拉列表,通过组合多个Spinner并设置相应的监听器,可以实现级联效果。 1. **Spinner控件**:Spinner是Android SDK中提供的一种基础UI组件,它允许用户在预定义的...

    详解Android的Socket通信、List加载更多、Spinner下拉列表

    本文主要对Android的Socket通信、List加载更多、Spinner下拉列表进行案例分析。具有很好的参考价值,需要的朋友一起来看下吧

    Android Spinner实现图片列表

    在Android开发中,Spinner是一个非常常见的控件,它主要用于下拉选择列表,通常用于呈现一组选项供用户选择。然而,标准的Spinner默认只支持显示文本,而无法直接展示图片。在给定的“Android Spinner实现图片列表”...

    Android 省市区三级连动--spinner.zip

    首先,Spinner是Android提供的一个下拉列表控件,类似于iOS的PickerView,用于在有限的选项中让用户做出选择。在XML布局文件中,我们可以通过`&lt;Spinner&gt;`标签来声明它,并设置相应的属性,如`android:id`、`android:...

    Android带设置默认值的Spinner

    - 当Spinner模式为`dropdown`时,可以使用`SpinnerAdapter`的`getDropDownView()`方法来自定义下拉列表的样式。 - 如果希望进一步自定义下拉列表的动画和行为,可以使用`Spinner`的`setOnItemSelectedListener()`...

    安卓三级联动省市联动多级联动相关-Androidspinner省市区三级连动源码.rar

    在Androidspinner省市区三级连动源码中,我们可以看到以下关键知识点: 1. **Spinner控件**:Spinner是Android提供的一个下拉选择控件,它允许用户从一组预定义的选项中选择一个。通常,spinner可以通过Adapter与...

    android studio 的下拉菜单Spinner使用详解

    在使用 Spinner 时,开发者可以使用 android:entries 属性来设置下拉列表框的列表项目,如果开发者已经确定列表选择框里的列表项,则完全不需要编写代码,只要为 Spinner 指定 android:entries 属性即可让 Spinner ...

    Android 省市区三级连动--spinner.rar

    Spinner是Android提供的一个下拉选择控件,常用于实现用户在有限选项中进行选择的操作。 1. **Spinner简介** Spinner是一种轻量级的控件,它可以显示一个默认值,并在用户点击时弹出一个下拉菜单供用户选择。它在...

    Spinner 下拉样式

    - 修改默认样式:默认的Spinner下拉列表样式是Android系统提供的,可以通过修改主题或style来改变其外观。 ```xml &lt;!-- 在res/values/styles.xml中 --&gt; &lt;!-- 修改Spinner下拉列表的背景颜色和文字颜色等 --&gt; ...

    自定义spinner下拉列表

    总结,自定义Spinner下拉列表主要涉及以下几个方面:1) 使用自定义布局文件替换默认的显示样式;2) 设置下拉列表的弹出动画;3) 处理用户的选择事件。通过这些方法,开发者可以灵活地定制Spinner以适应不同应用的...

    安卓Android源码——省市区三级连动--spinner.zip

    Spinner是Android SDK提供的一种下拉选择组件,它可以用来展示一个下拉菜单,用户可以从中选择一个选项。在这个项目中,开发者可能通过网络请求或者本地数据库获取省市区数据,并利用Spinner的监听事件来处理层级...

Global site tag (gtag.js) - Google Analytics