使用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的使用的更多相关文章

  1. Android开发之自己定义TabHost文字及背景(源码分享)

    使用TabHost 能够在一个屏幕间进行不同版面的切换,而系统自带的tabhost界面较为朴素,我们应该怎样进行自己定义改动优化呢 MainActivity的源码 package com.dream. ...

  2. Android开发模板代码(一)——简单打开图库选择照片

    首先,先贴上样本代码 //检查权限 public void checkPermission() { if (ContextCompat.checkSelfPermission(this, Manife ...

  3. Android开发模板代码(二)——为ImageView设置图片,退出后能保存ImageView的状态

    接着之前的那个从图库选择图片,设置到ImageView中去,但是,我发现了一个问题,就是再次进入的时候ImageView是恢复到了默认状态,搜索了资料许久之后,终于是发现了解决方法,使用SharePr ...

  4. Android开发之自己定义Spinner样式的效果实现(源码实现)

    android系统自带的Spinner样式是远远满足不了我们实际开发过程中对Spinner UI风格的要求,因此我们肯定须要为了切合整个应用的风格,改动我们的Spinner样式.系统给我们提供了两种常 ...

  5. Android开发——Viewpager的介绍使用

    目录: 一.Viewpager的简单介绍 二.简单的Viewpager使用 三.简单显示图片的Viewpager实现 四.广告图的实现及Viewpager指示器(小圆点)的实现 五.APP引导页的实现 ...

  6. Android开发系列(十八):自己定义控件样式在drawable目录下的XML实现

    在Android开发的过程中,我们常常须要对控件的样式做一下改变,能够通过用添加背景图片的方式进行改变,可是背景图片放多了肯定会使得APK文件变的非常大. 我们能够用自己定义属性shape来实现. s ...

  7. 003android初级篇之【转】Android开发中颜色的定义方法

    正好用到颜色的定义,但脑子里没有记住具体,转载一篇加强印象 1.使用Color类的常量,如: int color = Color.BLUE; // 创建一个蓝色 是使用Android提供的颜色 int ...

  8. Android开发权威指南(第2版)新书发布

    <Android 开发权威指南(第二版)>是畅销书<Android开发权威指南>的升级版,内容更新超过80%,是一本全面介绍Android应用开发的专著,拥有45 章精彩内容供 ...

  9. Android开发之自定义的ListView(UITableViewController)

    Android开发中的ListView, 顾名方法思义,就是表视图.表示图在iOS开发中就是TableView.两者虽然名称不一样,但是其使用方法,使用场景以及该控件的功能都极为相似,都是用来展示大量 ...

随机推荐

  1. Android SQLite 数据库 增删改查操作

    Android SQLite 数据库 增删改查操作 转载▼ 一.使用嵌入式关系型SQLite数据库存储数据 在Android平台上,集成了一个嵌入式关系型数据库--SQLite,SQLite3支持NU ...

  2. HTML&lt;!DOCTYPE&gt; 宣示

    在html页面,下面这行代码到底有什么用呢? <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" & ...

  3. ios-上拉电阻负载许多其他接口

    想尝试拉加载意识到有多少开始了他的研究之旅,我看了两天做出最终的界面. 之所以这么慢是由于,我不知道要将上拉出现的view放在哪.就能在scrollView拉究竟部的时候被拉出来.还有就是怎么拉出来之 ...

  4. 采用Eclipse中间Maven构建Web项目错误(一)

    采用Eclipse中间Maven构建Web工程 1.在进行上述操作时.pom.xml一直报错 <project xmlns="http://maven.apache.org/POM/4 ...

  5. Codeforces 385B Bear and Strings

    题目链接:Codeforces 385B Bear and Strings 记录下每一个bear的起始位置和终止位置,然后扫一遍记录下来的结构体数组,过程中用一个变量记录上一个扫过的位置,用来去重. ...

  6. VS2013验证控件出现 WebForms UnobtrusiveValidationMode 必须“jquery”ScriptResour......错误的解决方案

    如下面的错误: 解决方式例如以下: 方法一: 在webconfig中找到 <appSettings> <addkey="aspnet:UseTaskFriendlySync ...

  7. ODPS 下一个map / reduce 准备

    阿里接到一个电话说练习和比赛智能二选一, 真的很伤心, 练习之前积极老龄化的权利. 要总结ODPS下一个 写map / reduce 并进行购买预测过程. 首先这里的hadoop输入输出都是表的形式, ...

  8. poj 2408 Anagram Groups(hash)

    id=2408" target="_blank" style="">题目链接:poj 2408 Anagram Groups 题目大意:给定若干 ...

  9. Vs2010 配置驱动的开发环境

    我已被用来VS2010开发环境,之前曾经与vs2010驱动的开发环境.重装系统,一次又一次的配置,找了好几篇文章,配置没有成功,在配置阶段突然成功了,直接把原来的驱动程序的配置文件将能够接管使用. 当 ...

  10. Restify —— 在Node.js中构建正确的REST Web服务

    http://restify.com/ https://segmentfault.com/a/1190000000369308 https://cnodejs.org/topic/516774906d ...