【Android组件学习】Spinner的基本用法和Adapter的作用
2012-04-03 18:54
561 查看
Android有很多组件,每种组件的用法又有很多不同之处,要全部记住真是困难,先记在这里。
Spinner就是下拉菜单,它是介个样子的(Android 4.0.3):
接下来讲讲它最基本的用法。
1、在布局里创建一个Spinner,代码如下:
2、在Activity里创建对象,并且绑定内容,有两种方法,一种为在程序运行时载入数据,一种为在xml文件里定义好数据并与组件关联。
(1)程序运行时载入数据:
在activity中创建数组:
private static final String[] mCountries = {"China", "Russia", "Germany", "Ukraine", "Belarus", "USA"};
在onCreate函数中调用下面这个方法载入数据:
private void find_and_modify_view() {
Spinner spin = (Spinner) findViewById(R.id.spinner_1);
ArrayList<String> allcountries = new ArrayList<String>();
for (int i=0; i<mCountries.length; i++) {
allcountries.add(mCountries[i]);
}
ArrayAdapter<String> aspnCountries = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, allcountries);
aspnCountries.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);// 设定下拉菜单的样式
spin.setAdapter(aspnCountries);
}
(2)从XML文件中载入:
在/res/value下创建一个array.xml文件如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="countries">
<item>China2</item>
<item>Russia2</item>
<item>Germany2</item>
<item>Ukraine2</item>
<item>Belarus2</item>
<item>USA2</item>
</string-array>
</resources>
然后在onCreate函数中创建一个Spinner对象,完成绑定:
Spinner spin = (Spinner) findViewById(R.id.spinner_2);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.countries, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spin.setAdapter(adapter);
顺便讲讲Adapter的作用。
Adapter这个东东主要作用就是联系View和数据,我们既可以用它来操作底层数据(通过View),也可以用它将数据显示在View上。
在Spinner中我们使用到了ArrayAdapter,创建它的时候用到了下面一个构造函数:
ArrayAdapter(Context context, int textViewResourceId, List<T> objects)
在Spinner例子中,第一个参数是指上下文,传入this即可,主要是为了用来访问某些resource,第二个参数传入一个Spinner的样式(如果是其他组件会有不同的样式),第三个可以传入一个ArrayList,就是需要显示在Spinner上的数据。
此外还有CursorAdapter和SimpleCursorAdapter如果以后有机会用到再记下来。
Spinner就是下拉菜单,它是介个样子的(Android 4.0.3):
接下来讲讲它最基本的用法。
1、在布局里创建一个Spinner,代码如下:
<Spinner android:id="@+id/spinner_1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:drawSelectorOnTop="false"/>
2、在Activity里创建对象,并且绑定内容,有两种方法,一种为在程序运行时载入数据,一种为在xml文件里定义好数据并与组件关联。
(1)程序运行时载入数据:
在activity中创建数组:
private static final String[] mCountries = {"China", "Russia", "Germany", "Ukraine", "Belarus", "USA"};
在onCreate函数中调用下面这个方法载入数据:
private void find_and_modify_view() {
Spinner spin = (Spinner) findViewById(R.id.spinner_1);
ArrayList<String> allcountries = new ArrayList<String>();
for (int i=0; i<mCountries.length; i++) {
allcountries.add(mCountries[i]);
}
ArrayAdapter<String> aspnCountries = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, allcountries);
aspnCountries.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);// 设定下拉菜单的样式
spin.setAdapter(aspnCountries);
}
(2)从XML文件中载入:
在/res/value下创建一个array.xml文件如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="countries">
<item>China2</item>
<item>Russia2</item>
<item>Germany2</item>
<item>Ukraine2</item>
<item>Belarus2</item>
<item>USA2</item>
</string-array>
</resources>
然后在onCreate函数中创建一个Spinner对象,完成绑定:
Spinner spin = (Spinner) findViewById(R.id.spinner_2);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.countries, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spin.setAdapter(adapter);
顺便讲讲Adapter的作用。
Adapter这个东东主要作用就是联系View和数据,我们既可以用它来操作底层数据(通过View),也可以用它将数据显示在View上。
在Spinner中我们使用到了ArrayAdapter,创建它的时候用到了下面一个构造函数:
ArrayAdapter(Context context, int textViewResourceId, List<T> objects)
在Spinner例子中,第一个参数是指上下文,传入this即可,主要是为了用来访问某些resource,第二个参数传入一个Spinner的样式(如果是其他组件会有不同的样式),第三个可以传入一个ArrayList,就是需要显示在Spinner上的数据。
此外还有CursorAdapter和SimpleCursorAdapter如果以后有机会用到再记下来。
相关文章推荐
- android学习之LayoutInflater的用法,在myAdapter getView()里将多个TextView组件压缩成一个View控件,并在listView里显示
- Android编程开发之Spinner组件用法
- android 开发零起步学习笔记(二十一):AsyncTask的基本用法
- Android学习第五天————Spinner下拉列表组件
- Android活动组件的基本用法
- marsAndroid学习——spinner的基本使用
- ZendFramework学习第三章(核心组件—会话处理之Zend_Session基本用法)
- Android基本界面组件1-----文本框与编辑框的功能和用法
- Android学习记录(4)—在java中学习多线程下载的基本原理和基本用法①
- android学习---线程的基本用法
- marsAndroid学习——spinner的基本使用
- Android Adapter学习之 用法总结
- android 学习笔记 服务的基本用法
- Android学习记录(4)—在java中学习多线程下载的基本原理和基本用法①
- android学习十八(Service服务的基本用法)
- EXTJS学习系列基础篇:第八篇(转载)作者殷良胜,Ext组件系列之--textfield组件的基本用法
- Android学习06Android应用程序的基本组件
- EXTJS学习系列基础篇:第六篇(转载)作者殷良胜,Ext组件系列之--button组件的基本用法
- android-Handler基本用法学习总结
- EXTJS学习系列基础篇:第八篇(转载)作者殷良胜,Ext组件系列之--textfield组件的基本用法