Android开发模板------自己定义SimpleCursorAdapter的使用
使用SimpleCursorAdapter所设计的table(数据表)一定要有_id字段名称,否则会出现“找不到_id”的错误
SimpleCursorAdapter直接使用的方法:
SimpleCursorAdapter同意你绑定一个游标的列到ListView上,并使用自己定义的layout显示每一个项目。
SimpleCursorAdapter的创建,须要传入当前的上下文、一个layout资源,一个游标和两个数组:一个包括使用的列的名字,还有一个(同样大小)数组包括View中的资源ID,用于显示对应列的数据值。
//第一步:从数据库读取数据
dbHelper = new DBHelper(HistoryOrderActivity.this);
database = dbHelper.getWritableDatabase();
cursor = database.rawQuery("SELECT * FROM "+DBHelper.TABLE_ORDER+" where feedbackTime is not null", null);
//startManagingCursor(cursor); 被遗弃的方法,主要是把cursor的生命周期交由Activity管理
String[] fromColumns = new String[] {
"orderDescription",
"orderEffectiveTime",
"orderConsumeTime",
"promotion",
"feedbackInfo",
"feedbackTime",
};
int[] toLayoutIDs = new int[] {
R.id.description,
R.id.effectiveTime,
R.id.consumeTime,
R.id.promotion,
R.id.feedbackInfo,
R.id.feedbackTime};
adapter = new SimpleCursorAdapter(this, R.layout.histortyorder, cursor, fromColumns, toLayoutIDs,0);
SimpleCursorAdapter自己定义的使用:
//第一步:从数据库读取数据
dbHelper = new DBHelper(HistoryOrderActivity.this);
database = dbHelper.getWritableDatabase();
cursor = database.rawQuery("SELECT * FROM "+DBHelper.TABLE_ORDER+" where feedbackTime is not null", null);
//startManagingCursor(cursor); 被遗弃的方法,主要是把cursor的生命周期交由Activity管理
String[] fromColumns = new String[] {
"orderDescription",
"orderEffectiveTime",
"orderConsumeTime",
"promotion",
"feedbackInfo",
"feedbackTime",
};
int[] toLayoutIDs = new int[] {
R.id.description,
R.id.effectiveTime,
R.id.consumeTime,
R.id.promotion,
R.id.feedbackInfo,
R.id.feedbackTime};
if (cursor == null) {
return;
}
adapter = new HistoryOrderAdapter(HistoryOrderActivity.this, R.layout.histortyorder,
cursor, fromColumns, toLayoutIDs, 0);
适配器的实现:
public class HistoryOrderAdapter extends SimpleCursorAdapter {
private Cursor m_cursor;
private Context m_context;
private LayoutInflater miInflater;
public HistoryOrderAdapter(Context context, int layout, Cursor c,
String[] from, int[] to, int flags) {
super(context, layout, c, from, to, flags);
m_context = context;
m_cursor = c;
}
@Override
public void bindView(View arg0, Context arg1, Cursor arg2) {
View convertView = null;
if (arg0 == null) {
convertView = miInflater.inflate(R.layout.histortyorder, null);
} else {
convertView = arg0;
}
TextView tv_Description = (TextView) convertView
.findViewById(R.id.description);
TextView tv_EffectiveTime = (TextView) convertView
.findViewById(R.id.effectiveTime);
TextView tv_ConsumeTime = (TextView) convertView
.findViewById(R.id.consumeTime);
TextView tv_promotion = (TextView) convertView
.findViewById(R.id.promotion);
TextView tv_FeedbackInfo = (TextView) convertView
.findViewById(R.id.feedbackInfo);
TextView tv_FeedbackTime = (TextView) convertView
.findViewById(R.id.feedbackTime);
tv_Description.setText(arg2.getString(arg2
.getColumnIndex("orderDescription")));
tv_EffectiveTime.setText(ShopUtils.changeTimestampToTime(Long
.valueOf(arg2.getString(arg2
.getColumnIndex("orderEffectiveTime")))));
tv_ConsumeTime
.setText(ShopUtils.changeTimestampToTime(Long.valueOf(arg2
.getString(arg2.getColumnIndex("orderConsumeTime")))));
tv_promotion.setText(arg2.getString(arg2.getColumnIndex("promotion")));
tv_FeedbackInfo.setText(arg2.getString(arg2
.getColumnIndex("feedbackInfo")));
tv_FeedbackTime.setText(ShopUtils.changeTimestampToTime(Long
.valueOf(arg2.getString(arg2.getColumnIndex("feedbackTime")))));
}
}
HistoryOrderAdapter有点糙,须要改进。
Android开发模板------自己定义SimpleCursorAdapter的使用的更多相关文章
- Android开发之自己定义TabHost文字及背景(源码分享)
使用TabHost 能够在一个屏幕间进行不同版面的切换,而系统自带的tabhost界面较为朴素,我们应该怎样进行自己定义改动优化呢 MainActivity的源码 package com.dream. ...
- Android开发模板代码(一)——简单打开图库选择照片
首先,先贴上样本代码 //检查权限 public void checkPermission() { if (ContextCompat.checkSelfPermission(this, Manife ...
- Android开发模板代码(二)——为ImageView设置图片,退出后能保存ImageView的状态
接着之前的那个从图库选择图片,设置到ImageView中去,但是,我发现了一个问题,就是再次进入的时候ImageView是恢复到了默认状态,搜索了资料许久之后,终于是发现了解决方法,使用SharePr ...
- Android开发之自己定义Spinner样式的效果实现(源码实现)
android系统自带的Spinner样式是远远满足不了我们实际开发过程中对Spinner UI风格的要求,因此我们肯定须要为了切合整个应用的风格,改动我们的Spinner样式.系统给我们提供了两种常 ...
- Android开发——Viewpager的介绍使用
目录: 一.Viewpager的简单介绍 二.简单的Viewpager使用 三.简单显示图片的Viewpager实现 四.广告图的实现及Viewpager指示器(小圆点)的实现 五.APP引导页的实现 ...
- Android开发系列(十八):自己定义控件样式在drawable目录下的XML实现
在Android开发的过程中,我们常常须要对控件的样式做一下改变,能够通过用添加背景图片的方式进行改变,可是背景图片放多了肯定会使得APK文件变的非常大. 我们能够用自己定义属性shape来实现. s ...
- 003android初级篇之【转】Android开发中颜色的定义方法
正好用到颜色的定义,但脑子里没有记住具体,转载一篇加强印象 1.使用Color类的常量,如: int color = Color.BLUE; // 创建一个蓝色 是使用Android提供的颜色 int ...
- Android开发权威指南(第2版)新书发布
<Android 开发权威指南(第二版)>是畅销书<Android开发权威指南>的升级版,内容更新超过80%,是一本全面介绍Android应用开发的专著,拥有45 章精彩内容供 ...
- Android开发之自定义的ListView(UITableViewController)
Android开发中的ListView, 顾名方法思义,就是表视图.表示图在iOS开发中就是TableView.两者虽然名称不一样,但是其使用方法,使用场景以及该控件的功能都极为相似,都是用来展示大量 ...
随机推荐
- poj 3259(bellman最短路径)
Wormholes Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 30169 Accepted: 10914 Descr ...
- vs修错小知识,相当于我自己的笔记,需要的人可以看下
在出现这种外部错误时,首先得检查你自己的的类的方法是否都以及实现了,我就是出现没有实现某些方法所以报出这个错误!!! 结果是onExit()方法我定义了没有去实现它. (待续)
- sql server事物控制
一.多个数据库 1.存储过程 2.Commit写在 Try...Catch后面 protected void Button1_Click(object sender, EventArgs e) ...
- Spring它不支持依赖注入static静态变量
在springframework在,我们不能@Autowired静态变量,制作spring bean,例如,没有那么: @Autowired private static YourClass your ...
- 开源一个简单的c++软光栅渲染器
本文由zhangbaochong原创,转载请注明出处http://www.cnblogs.com/zhangbaochong/p/5751111.html 由于开学就大四面临找工作了,为了整理下项目, ...
- 基本介绍LINUX远程PC软件:PUTTY、SecureCRT、X-Manager
***********************************************声明************************************************ 原创 ...
- OAuth在WebApi
OAuth在WebApi中的使用,前后台分离的调用方式 前段时间由于公司架构服务层向WebApi转换,就研究了OAuth在WebApi中的使用,这中间遇到了很多坑,在此记录一下OAuth的正确使用方式 ...
- ruby简单的基本 3
类 Ruby一切都是对象,它包含了一个恒定.例如,可以使用.class物业查看对象的类型,你可以看一下1.class.你会发现常1类型是Fixnum,1但它是Fixnum的一个例子. Ruby本类cl ...
- 面向服务的架构(SOA)
SOA架构基础概念 面向服务的架构(SOA) 在深入探讨什么是面向服务的架构(SOA)之前,先建立一些基本的概念和术语的基本描述而非严格定义,所以也许有些定义在业内还存留争议,此处暂且忽略. 架构基础 ...
- Android4.2.2由于越来越多的物理按键(frameworks)
当我们改变frameworks之后可能: make: *** [out/target/common/obj/PACKAGING/checkapi-current-timestamp] 错误 38 解决 ...