ListView中的ArrayAdapter
ListView是Android中经常会使用的东西,绑定数据对于初学者来说,尤其是刚接触编程的人来说,往往会觉得很难理解,Android中Adapter我是这么理解的,是数据和视图之间的桥梁,数据在adapter中做处理,然后显示到视图上面。
Adapter有很多种,有ArrayAdapter<T>, BaseAdapter, CursorAdapter, HeaderViewListAdapter, ListAdapter, ResourceCursorAdapter, SimpleAdapter, SimpleCursorAdapter, SpinnerAdapter, WrapperListAdapter.
我在项目中用到过的就ArrayAdapter<T>, (数组也可以是对象数组),BaseAdapter(所有Adapter的基类),SimpleAdapter,CursorAdapter(数据来源是cursor),SimpleCursorAdapter,感觉有必要总结一下。
最基本的要数sdk官网上面给的这个代码例子了http://developer.android.com/resources/tutorials/views/hello-listview.html。
我自己写的一个例子,先上图,再贴上代码:
- packagecom.cz.list.demo;
- importandroid.app.Activity;
- importandroid.os.Bundle;
- importandroid.widget.ArrayAdapter;
- importandroid.widget.ListView;
- publicclassArrayListDemoextendsActivity{
- privateListViewlistView;
- privateString[]adapterData;
- /**Calledwhentheactivityisfirstcreated.*/
- @Override
- publicvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.array_list_layout);
- /*找到这个listView*/
- listView=(ListView)findViewById(R.id.array_list);
- /*我们要在listView上面没条显示的数据,放到一个数组中*/
- adapterData=newString[]{"Afghanistan","Albania","Algeria",
- "AmericanSamoa","Andorra","Angola","Anguilla",
- "Antarctica","AntiguaandBarbuda","Argentina","Armenia",
- "Aruba","Australia","Austria","Azerbaijan","Bahrain",
- "Bangladesh","Barbados","Belarus","Belgium","Belize",
- "Benin","Bermuda","Bhutan","Bolivia",
- "BosniaandHerzegovina","Botswana","BouvetIsland"};
- /*这个是数组string类型的数组*/
- //ArrayAdapter<String>arrayAdapter=newArrayAdapter<String>(
- //ArrayListDemo.this,android.R.layout.simple_list_item_1,
- //adapterData);
- /*设置ListView的Adapter*/
- listView.setAdapter(newArrayAdapter<String>(ArrayListDemo.this,
- android.R.layout.simple_list_item_1,adapterData));
- }
- }
1. 适配器的作用是数据和视图之间的桥梁
2. 这个小例子是要显示一个数组,我们就用ArrayAdapter,数组适配器,数据的数据类型<>是String类型的,数据的数据类型还可以是其他的包括对象类型的
3. ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(
ArrayListDemo.this, android.R.layout.simple_list_item_1,
adapterData);
这段代码是创建一个数组适配器的代码,里面有三个参数,第一个参数是上下文,就是当前的Activity, 第二个参数是android sdk中自己内置的一个布局,它里面只有一个TextView,这个参数是表明我们数组中每一条数据的布局是这个view,就是将每一条数据都显示在这个view上面;第三个参数就是我们要显示的数据。listView会根据这三个参数,遍历adapterData里面的每一条数据,读出一条,显示到第二个参数对应的布局中,这样就形成了我们看到的listView. 不知道刚学的同学懂了没有...
更多相关文章
- SpringBoot 2.0 中 HikariCP 数据库连接池原理解析
- 一句话锁定MySQL数据占用元凶
- 【Android高级工程师】Android项目开发如何设计整体架构?
- 接着归纳Android(安卓)from 《第一行代码》
- android短彩信数据库设计源码解析(一)
- Android中简单轻量级的数据缓存类库DCache
- android 数据存储的四种方式.
- 转:android:Adapter用法总结
- android setTag的妙用和The key must be an application-specifi