第一种方法:

使用Spinner时需要配置选项的资源文件,资源文件为一个string类型的数组

在res下的values文件夹下新建一个xml文件

内容为:

<?xml version="1.0" encoding="utf-8"?>
<resources> <string-array name="book">
<item>《java开发实战经典》</item>
<item>《J2EE轻量级框架》</item>
<item>《平凡的世界》</item>
<item>《西方哲学简史》</item>
<item>《白鹿原》</item>
<item>《人性的弱点》</item>
</string-array> </resources>

界面显示文件配置为:

使用Spinner时需要配置选项的资源文件,资源文件为一个string类型的数组

在res下的values文件夹下新建一个xml文件

内容为:

<?xml version="1.0" encoding="utf-8"?>
<resources> <string-array name="book">
<item>《java开发实战经典》</item>
<item>《J2EE轻量级框架》</item>
<item>《平凡的世界》</item>
<item>《西方哲学简史》</item>
<item>《白鹿原》</item>
<item>《人性的弱点》</item>
</string-array> </resources> 界面显示文件配置为: <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" > <Spinner
android:id="@+id/spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:entries="@array/book" ————>引入资源文件
android:prompt="@string/tishi" ——配置下拉列表的提示语,不可以直接写字符串,必须从资源文件中引入字符串
/> </LinearLayout>

第二种方法:

values中的string.xml文件如下:

<?xml version="1.0" encoding="utf-8"?>
<resources> <string name="hello">Hello World, SpinnerActivity!</string>
<string name="app_name">Spinner</string>
<string name="tishi">请选择你喜欢的书籍</string> </resources>

在程序中配置下拉列表中的信息,并设置下拉列表的现实风格

arrayadapter用来解析数据

程序代码如下:

public class SpinnerActivity extends Activity {
Spinner spinner;
ArrayAdapter<CharSequence> arrayadapter; @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
arrayadapter=ArrayAdapter.createFromResource(this, R.array.book,android.R.layout.simple_spinner_item); spinner=(Spinner)findViewById(R.id.spinner2);
arrayadapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);-->设置下拉列表的显示风格
spinner.setAdapter(arrayadapter); ————>将arrayadapter配置给Spinner }
}

第三种方法:

在Spinner中自定义Adapter,定义一个类继承BaseAdapter,实现父类的方法

public class MyAdapter extends BaseAdapter {
private Context mycontext;
public MyAdapter(Context context){
this.mycontext=context;
} public int getCount() { //返回该Adapter中view的个数,不写默认为为零
// TODO Auto-generated method stub
return 10;
} public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
} public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
} public View getView(int position, View convertView, ViewGroup parent) { //返回自定义的view
TextView tv=new TextView(mycontext);
tv.setText("aaa"+position);
return tv;
} }

Activity中的实现代码

public class SpinnerActivity extends Activity {
Spinner spinner;
ArrayAdapter<CharSequence> arrayadapter; @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
spinner=(Spinner)findViewById(R.id.spinner2);
MyAdapter myadapter=new MyAdapter(SpinnerActivity.this);
spinner.setAdapter(myadapter); }
}

Spinner --- 功能和用法的更多相关文章

  1. Spinner功能和用法

    书中只是简单写了选择的界面,没有写出选择之后的结果显示,我做了进一步功能. MainActivity.java public class MainActivity extends Activity { ...

  2. Android 自学之画廊视图(Gallery)功能和用法

    Gallery与之前讲的Spinner有共同的父类:AbsSpinner,表明Gallery和Spinner都是一个列表框.他们之间的区别在于Spinner显示的是一个垂直的列表框,而Gallery显 ...

  3. 搜索框(SearchView)的功能与用法

    SearchView是搜索框组件,它可以让用户在文本框内输入汉字,并允许通过监听器监控用户输入,当用户用户输入完成后提交搜索按钮时,也通过监听器执行实际的搜索. 使用SearchView时可以使用如下 ...

  4. 数值选择器(NumberPicker)的功能与用法

    数值选择器用于让用户输入数值,用户既可以通过键盘输入数值,也可以通过拖动来选择数值.使用该组件常用如下三个方法. setMinValue(int minVal):设置该组件支持的最小值. setMax ...

  5. 日历视图(CalendarView)组件的功能和用法

    日历视图(CalendarView)可用于显示和选择日期,用户既可选择一个日期,也可通过触摸来滚动日历.如果希望监控该组件的日历改变,可调用CalendarView的setOnDateChangeLi ...

  6. 星级评分条(RatingBar)的功能和用法

    星级评分条与拖动条有相同的父类:AbsSeekBar,因此它们十分相似.实际上星级评分条与拖动条的用法.功能都十分接近:它们都是允许用户通过拖动条来改变进度.RatingBar与SeekBar最大区别 ...

  7. 拖动条(SeekBar)的功能和用法

    拖动条和进度条非常相似,只是进度条采用颜色填充来表明进度完成的程序,而拖动条则通过滑块的位置来标识数值——而且拖动条允许用户拖动滑块来改变值,因而拖动条通常用于对系统的某种数值进行调节,比如调节音量等 ...

  8. StackView的功能和用法

    StackView也是AdapterViewAnimator的子类,它也用于显示Adapter提供的系列View.SackView将会以“堆叠(Stack)”方式来显示多个列表项. 为了控制Stack ...

  9. MySQL常用存储引擎功能与用法详解

    本文实例讲述了MySQL常用存储引擎功能与用法. MySQL存储引擎主要有两大类: 1. 事务安全表:InnoDB.BDB. 2. 非事务安全表:MyISAM.MEMORY.MERGE.EXAMPLE ...

随机推荐

  1. hiberbnate 缓存策略概述

    1. 首先了解什么是缓存 这里说的缓存并不是指计算机的内存或者CPU的一二级缓存. 缓存是指为了降低应用程序对物理数据源访问的频次,从而提高应用程序的运行性能的一种策略.即对物理数据源的复制,存在于内 ...

  2. angularJS使用内置服务

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script sr ...

  3. 1-wire单总线DS18B20

    要想实现单总线通信,每一个挂在总线上的从机必须拥有开路或3态输出.单总线DS18B20的DQ引脚用内部电路实现了开漏输出,其等效电路如下图: 当单片机IO引脚配置为 mcu IO引脚 电流流向 DS1 ...

  4. log4cxx在linux下的编译使用

    最近在linux下使用log4cxx库,按照其官方文档提供的方法来进行编译,不能成功,又利用google搜索了好几个中文博客上讲述在linux下编译使用log4cxx库的方法,依然不能成功,在这里我奉 ...

  5. HDU 5303 Delicious Apples(思维题)

    Delicious Apples Time Limit: 5000/3000 MS (Java/Others)    Memory Limit: 524288/524288 K (Java/Other ...

  6. 报错"the microsoft.jet.oledb.4.0 provider is not registered on the local machine"解决方案

    报错提示:"the microsoft.jet.oledb.4.0 provider is not registered on the local machine" 错误起因:wi ...

  7. Atitit.prototype-base class-based  基于“类” vs 基于“原型”

    Atitit.prototype-base class-based  基于“类” vs 基于“原型” 1. 基于“类” vs 基于“原型”1 2.  对象的产生有两种基本方式.一种是以原型(proto ...

  8. Atitit.木马病毒的操作注册表原理 系统服务管理器 atiSysService

    Atitit.木马病毒的操作注册表原理 系统服务管理器 atiSysService 1. atiSysService1 2. atiSysService  原理1 3. Java code1 4. 参 ...

  9. C语言第十一回合:预处理命令的集中营

    C语言第十一回合:预处理命令的集中营   [学习目标]   1.         宏定义 2.         文件包括"处理 3.         条件编译 预处理命令:能够改进程序设计的 ...

  10. redis命令_ZREVRANGEBYSCORE

    ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count] 返回有序集 key 中, score 值介于 max 和 min 之间(默 ...