列表选择框(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. Android 强大的开发支持库组件AppFromwork框架详解
  2. Android 自定义view组件
  3. android JNI java与C++传递String数组(引用类型)
  4. Android封装的HTTP请求组件
  5. Android 数据列表展示UI框架

随机推荐

  1. android device action and adb command
  2. Android Activity屏幕切换动画-左右滑动
  3. kivy android app error
  4. Android 判断网络
  5. Eclipse 开发 Android,第一个 HelloWord
  6. Android 子线程请求ASP.NET后台
  7. Android(安卓)组件Activity,Application
  8. Android设置渐变色状态栏
  9. 2013年Android 学习计划
  10. Android实现静态广播监听器的方法