列表选择框(Spinner)与Swing编程里面的Spinner不同,这里的Spinner其实就是一个列表选项框。

Spinner是ViewGroup的间接子类,因此他也可作为容器使用。

Spinner支持的常用XML属性和说明:

XML属性 说明
android:prompt 设置该列表框的提示
android:entries 使用数组资源设置该下拉列表框的列表项目

啥都不说了我们看看代码:

layout/main.xml

 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3     android:orientation="vertical" 4     android:layout_width="fill_parent" 5     android:layout_height="fill_parent" 6     > 7 <!-- 定义了一个Spinner组件, 8     指定该显示该Spinner组件的数组 --> 9 <Spinner10     android:layout_width="fill_parent" 11     android:layout_height="wrap_content"12     android:entries="@array/books" 13     />14 </LinearLayout>

上面代码里面的android:entries="@array/books"是指向的vlaues/Array.xml,在这个文件里面,定义了列表项

values/Array.xml

 1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3     <string-array name="books"> 4         <item >绝世唐门</item> 5         <item >莽荒记</item> 6         <item >java</item> 7         <item >javascript</item> 8     </string-array> 9     10 </resources>

java类里面就只做了一个展示的功能:

com.example.spinner.SpinnerTest.java

 1 package com.example.spinner; 2  3 import android.support.v7.app.ActionBarActivity; 4 import android.support.v7.app.ActionBar; 5 import android.support.v4.app.Fragment; 6 import android.os.Bundle; 7 import android.view.LayoutInflater; 8 import android.view.Menu; 9 import android.view.MenuItem;10 import android.view.View;11 import android.view.ViewGroup;12 import android.os.Build;13 14 public class SpinnerTest extends ActionBarActivity {15 16     @Override17     protected void onCreate(Bundle savedInstanceState) {18         super.onCreate(savedInstanceState);19         setContentView(R.layout.main);20     }21 }

效果图:(点击了文本框后就会跳出这些列表项)

在网上看到了一个实例:不存储列表项的Spinner(顺便练习了下)

layout/main.xml

 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3     android:orientation="vertical" 4     android:layout_width="fill_parent" 5     android:layout_height="fill_parent" 6     > 7 <TextView  8     android:layout_width="wrap_content"  9     android:layout_height="wrap_content"10     android:text="选择您最喜欢的数字:"11     />12 <Spinner13     android:id="@+id/test"14     android:layout_width="fill_parent" 15     android:layout_height="wrap_content" 16     />17 </LinearLayout>

java类:com.example.spinner.SpinnerTest

 1 package com.example.spinner; 2  3 import android.support.v7.app.ActionBarActivity; 4 import android.support.v7.app.ActionBar; 5 import android.support.v4.app.Fragment; 6 import android.annotation.SuppressLint; 7 import android.os.Bundle; 8 import android.view.LayoutInflater; 9 import android.view.Menu;10 import android.view.MenuItem;11 import android.view.View;12 import android.view.ViewGroup;13 import android.widget.BaseAdapter;14 import android.widget.ImageView;15 import android.widget.LinearLayout;16 import android.widget.Spinner;17 import android.widget.TextView;18 import android.os.Build;19 20 public class SpinnerTest extends ActionBarActivity {21 22     @Override23     protected void onCreate(Bundle savedInstanceState) {24         super.onCreate(savedInstanceState);25         setContentView(R.layout.main);26         BaseAdapter ba = new BaseAdapter() {27             28             @Override29             public View getView(int arg0, View arg1, ViewGroup arg2) {30                 //创建一个LinearLayout,并向其中添加2个组件31                 LinearLayout line = new LinearLayout(SpinnerTest.this);32                 line.setOrientation(0);33                 34                 ImageView image = new ImageView(SpinnerTest.this);35                 image.setImageResource(R.drawable.ic_launcher);36                 37                 TextView text = new TextView(SpinnerTest.this);38                 text.setText(arg0 + "");39                 text.setTextSize(20);40                 line.addView(image);41                 line.addView(text);42                 return line;43             }44             45             @Override46             public long getItemId(int arg0) {47                 return 0;48             }49             50             @Override51             public Object getItem(int arg0) {52                 return null;53             }54             55             @Override56             public int getCount() {57                 //指定一共包含10个选项58                 return 10;59             }60         };61         62         Spinner spinner = (Spinner)findViewById(R.id.test);63         spinner.setAdapter(ba);64     }65 }

运行后的效果图:

更多相关文章

  1. 看Google官方的Android开发文档的一些收获
  2. Android:使用VideoView(TV显示屏待机状态,循环播放演示视频)
  3. Android(安卓)应用程序开发基础
  4. Android布局管理器-详细解析布局实现
  5. 在Android使用正则表达式
  6. Android(安卓)强大的开发支持库组件AppFromwork框架详解
  7. Android系统架构概述
  8. Android(安卓)UI组件
  9. 跟我学android应用开发 之 第一个Android应用程序

随机推荐

  1. Android平台上长连接的实现
  2. Android(安卓)编程下的 Secret Code
  3. android 通过http访问服务器数据
  4. Android(安卓)工程的创建
  5. ubuntu环境下android开发平台的搭建
  6. 成佩涛编程之路——android之jquery使用(
  7. 为什么IOS比Android更吸引开发者
  8. Android小游戏——简单易懂单机人人对战
  9. 【译】Android中构建快速可靠的UI测试
  10. Android(安卓)WebView与JavaScript交互操