Android 自学之列表选择框Spinner

时间:2014-05-28 10:06:41   收藏:0   阅读:315

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

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

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

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

 

 

 

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

layout/main.xml

bubuko.com,布布扣
 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 <Spinner
10     android:layout_width="fill_parent" 
11     android:layout_height="wrap_content"
12     android:entries="@array/books" 
13     />
14 </LinearLayout>
bubuko.com,布布扣

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

values/Array.xml

 

bubuko.com,布布扣
 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>
bubuko.com,布布扣

 

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

com.example.spinner.SpinnerTest.java

bubuko.com,布布扣
 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     @Override
17     protected void onCreate(Bundle savedInstanceState) {
18         super.onCreate(savedInstanceState);
19         setContentView(R.layout.main);
20     }
21 }
bubuko.com,布布扣

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

bubuko.com,布布扣

 

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

layout/main.xml

bubuko.com,布布扣
 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 <Spinner
13     android:id="@+id/test"
14     android:layout_width="fill_parent" 
15     android:layout_height="wrap_content" 
16     />
17 </LinearLayout>
bubuko.com,布布扣

java类:com.example.spinner.SpinnerTest

bubuko.com,布布扣
 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     @Override
23     protected void onCreate(Bundle savedInstanceState) {
24         super.onCreate(savedInstanceState);
25         setContentView(R.layout.main);
26         BaseAdapter ba = new BaseAdapter() {
27             
28             @Override
29             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             @Override
46             public long getItemId(int arg0) {
47                 return 0;
48             }
49             
50             @Override
51             public Object getItem(int arg0) {
52                 return null;
53             }
54             
55             @Override
56             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 }
bubuko.com,布布扣

运行后的效果图:

bubuko.com,布布扣

 

Android 自学之列表选择框Spinner,布布扣,bubuko.com

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!