通常情况下,如果列表选择框中要显示的列表项是可知的,那么可以将其保存在数组资源文件中,然后通过数组资源来为列表选择框指定列表项。这样就可以在不编写Java代码的情况下实现一个下拉选择框。

1.在布局文件中添加一个<spinner>标记,并为其指定android:entries属性,具体代码如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:id="@+id/LinearLayout1"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    tools:context=".MainActivity" ><Spinner android:entries="@array/ctype"     android:layout_width="wrap_content"     android:layout_height="wrap_content"     android:id="@+id/spinner"/></LinearLayout>

其中android:entries属性是用来指定列表项的,如果在布局文件中不指定该属性,可以在Java代码中通过为其指定适配器的方式指定;

2.编写用于指定列表项的数组资源文件,并将其保存在res\values目录中,这里将其命名为arrays.xml,在该文件中添加一个字符串数组,名称为ctype,具体代码如下

<?xml version="1.0" encoding="UTF-8"?><resources>    <string-array name="ctype">        <item>ID</item>        <item>Student Card</item>        <item>Army Card</item>        <item>Work Card</item>        <item>Other</item>    </string-array></resources>

在屏幕上添加列表选择框后,可以使用列表选择框的getSelectedItem()方法获取列表选择框的选中值,可以使用下面的代码:

Spinner spinner=(Spinner)findViewById(R.id.spinner);spinner.getSelectedItem();

如果想要在用户选择不同的列表项后,执行相应的处理,则可以为该列表选择框添加OnItemSelectedListener事件监听器。例如,为spinner添加选择列表事件监听器,并在onItemSelected()方法中获取选择项的值输出到日志中,可以使用如下代码:

package com.basillee.blogdemo;import android.os.Bundle;import android.app.Activity;import android.util.Log;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemSelectedListener;import android.widget.Spinner;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Spinner spinner=(Spinner)findViewById(R.id.spinner);spinner.setOnItemSelectedListener(new OnItemSelectedListener() {@Overridepublic void onItemSelected(AdapterView<?> parent, View arg1,int pos, long id) {// TODO Auto-generated method stubString result=parent.getItemAtPosition(pos).toString();//获取选择项的值Log.i("spinner", result);}@Overridepublic void onNothingSelected(AdapterView<?> arg0) {// TODO Auto-generated method stub}});}}

下面介绍通过指定适配器的方式指定列表的方式指定列表项的方法。

(1)创建一个适配器对象,通常使用ArrayAdapter类。在Android中,创建适配器通常可以使用以下两种方法:一种是通过数组资源文件创建;另一种是通过java里面的字符串数组创建。

  • 通过数组资源文件创建适配器,需要使用ArrayAdapter类的createFromResource()方法,具体代码如下:
ArrayAdapter<CharSequence> adapter=ArrayAdapter.createFromResource(this,R.array.ctype,android.R.layout.simple_dropdown_item_1line);
  • 通过Java代码创建如下
String[]ctype=new String[]{"ID","Student Card","Army Card"};     ArrayAdapter<String> adapter=new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line,ctype);

(2)为适配器设置下拉列表的选项样式:

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

(3)将适配器与选择列表框关联:

spinner.setAdapter(adapter);

更多相关文章

  1. android 操作sdcard中的多媒体文件(一)——音乐列表的制作
  2. android操作sdcard中的多媒体文件(一)——音乐列表的制作
  3. 【Android】SerialPortFinder学习笔记,显示串口列表
  4. Android(安卓)的SimpleAdapter几点认识
  5. 解决jdk1.6已经安装,编译android源码报错问题
  6. Unable to execute dex: java.nio.BufferOverflowException.解决
  7. Android文件图片上传的详细讲解(三)---模式回调类
  8. android高效读取大图片 防止OOM
  9. 箭头函数的基础使用

随机推荐

  1. Android平台常见属性集合
  2. android约束布局ConstraintLayout
  3. 【Android】Android的Activity生命周期
  4. No command 'mmm' found
  5. android 背景圆角以及图片圆角处理
  6. 通过API级别进行文档内容过滤
  7. [Android学习]ImageView的scaletype属性
  8. Android布局图标中心化
  9. android IApplicationToken分析
  10. 11月29日