博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android新手入门2016(9)--ListView之SimpleAdapter和SimpleCursorAdapter
阅读量:5254 次
发布时间:2019-06-14

本文共 2474 字,大约阅读时间需要 8 分钟。

本文来自,引用必须注明出处!

ListView这几个Adapter究竟有什么不同,查了一下,其实主要是数据源不同,导致了不同的用法

ArrayAdapter 来源于字符串数组

SimpleAdapter 来源是List<Map<String,?>>格式的数据

SimpleCursorAdapter 来源于数据库

SimpleAdapter 相对于ArrayAdapter复杂一点,但可以显示更丰富的内容。

再来看看代码吧:

package com.fable.helloworld; import android.app.Activity;  import android.os.Bundle;   import android.widget.ListView; import android.widget.SimpleAdapter; import java.util.*;public class HelloWorldActivity extends Activity {      @Override      public void onCreate(Bundle savedInstanceState) {       	super.onCreate(savedInstanceState);        setContentView(R.layout.activity_hello_world);          //绑定XML中的ListView,作为Item的容器          ListView listView = (ListView) findViewById(R.id.MyListView);                  //生成动态数组,并且转载数据          ArrayList
> mylist = new ArrayList
>(); for(int i=0;i<5;i++) { HashMap
map = new HashMap
(); map.put("title", "我是标题" + i); map.put("text", "我是子标题" + i); mylist.add(map); } //生成适配器,数组===》ListItem SimpleAdapter mSchedule = new SimpleAdapter(this, //上下文,就是这个Activity mylist,//数据来源 R.layout.my_list_item,//ListItem的XML实现 new String[] {"title", "text"},//动态数组与ListItem对应的子项 new int[] {R.id.ItemTitle,R.id.ItemText});//ListItem的XML文件里面的两个TextView ID //添加并且显示 listView.setAdapter(mSchedule); } }
上文中可以看出,使用了自己的布局文件:

/HelloWorld/res/layout/activity_hello_world.xml

再来一个列表项的布局文件:/HelloWorld/res/layout/my_list_item.xml

 ===================================================================================================================

今天本来还想说说SimpleCursorAdapter。在网上找了一些例子,放进Eclipse里面,发现被弃用了。

认真看一下,原来是这个构造函数被改了。现在推荐用这个了,多了个flags

SimpleCursorAdapter (Context context, int layout, Cursor c, String[] from, int[] to,int flags)

不过没关系,我是新手,一样是新接触的。

context 上下文信息,传this进去就行了。

layout 布局文件,我们使用系统提供简单的格式吧 

flags是一个标识,标识当数据改变调用onContentChanged()的时候,是否通知ContentProvider数据的改变,如果无需监听ContentProvider的改变,则可以传0。对于SimpleCursorAdapter适配器的Cursor的改变,可以使用SimpleCursorAdapter.swapCursor(Cursor)方法,它会与旧的Cursor互换,并且返回旧的Cursor。

很多内容都被弃用,改了之后,发现startMangingCursor的方法也被弃用了,怎么找都找不到,或者说找到的方法我看不懂。

所以决定暂时放下,以后补充,大家学习Android的时候,千万别想着把所有东西都搞清楚,再去实际动手,这是没有意义的。到动手的时候照样什么也不会。遇到技术问题去网上找,是在找不到,或者像现在这样访问数据库的问题太高级了,不是一个还没入门的人能做到的。所以暂时放下是一个不错的选择。继续往前走吧,少年!

转载于:https://www.cnblogs.com/fablegame/p/6430280.html

你可能感兴趣的文章
[转载]解决在win10中webstrom无法使用命令行(Terminal)
查看>>
ios Label TextFile 文本来回滚动 包括好用的三方
查看>>
信息熵与TF-IDF 学习笔记
查看>>
smplayer中使用srt字幕乱码问题
查看>>
python--输入一组无序的数,排序
查看>>
第八天 线性表【下】
查看>>
现代软件工程_第一周练习_第4题02_万世想
查看>>
[转]Log4j使用总结
查看>>
ssh(安全外壳协议)
查看>>
python基础_特殊符号
查看>>
关于Java序列化和Hadoop的序列化
查看>>
创建线程的三种方式
查看>>
docker rancher 体验 (未完待续.....)
查看>>
10反射
查看>>
Android操作Sqlite数据库
查看>>
opencv 鼠标交互
查看>>
iOS之地图开发
查看>>
[Swift]LeetCode1015. 可被 K 整除的最小整数 | Smallest Integer Divisible by K
查看>>
[Swift]LeetCode1124. 表现良好的最长时间段 | Longest Well-Performing Interval
查看>>
[Swift]LeetCode942. 增减字符串匹配 | DI String Match
查看>>