Android(安卓)自学之列表选择框Spinner
16lz
2022-03-22
列表选择框(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 }
运行后的效果图:
更多相关文章
- 看Google官方的Android开发文档的一些收获
- Android:使用VideoView(TV显示屏待机状态,循环播放演示视频)
- Android(安卓)应用程序开发基础
- Android布局管理器-详细解析布局实现
- 在Android使用正则表达式
- Android(安卓)强大的开发支持库组件AppFromwork框架详解
- Android系统架构概述
- Android(安卓)UI组件
- 跟我学android应用开发 之 第一个Android应用程序