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.两者虽然名称不一样,但是其使用方法,使用场景以及该控件的功能都极为相似,都是用来展示大量 ...
随机推荐
- oracle 锁表、解锁的语句
--1.以下的语句用来查询哪些对象被锁: select object_name,machine,s.sid,s.serial# from v$locked_object l,dba_object ...
- bridge pattern
10.5 桥接模式总结 桥接模式是设计Java虚拟机和实现JDBC等驱动程序的核心模式之一,应用较为广泛.在软件开发中如果一个类或一个系统有多个变化维度时,都可以尝试使用桥接模式对其进行设计.桥接模 ...
- RH033读书笔记(6)-Lab 7 Standard I/O and Pipes
Lab 7 Standard I/O and Pipes 1. [student@stationX ~]$ cat /proc/cpuinfo /proc/meminfo 2. [student@st ...
- Git显示漂亮日志的小技巧
Git的传统log如下所示,你喜欢吗? 看看下面这个你喜不喜欢?(点击图片看大图) 要做到这样,命令行如下: 1 git log --graph --pretty=format:'%Cred%h%Cr ...
- IBatis.Net获取执行的Sql语句
前言 IBatis.Net中Sql语句是些在配置文件中的,而且配置文件是在程序启动时读取的(我们开发的时候需要将其设置成较新复制或者是始终复制),而不是程序将其包含在其中(例如NHibernate的映 ...
- 【Java收集的源代码分析】Hashtable源代码分析
Hashtable简单介绍 Hashtable相同是基于哈希表实现的,相同每一个元素是一个key-value对,其内部也是通过单链表解决冲突问题,容量不足(超过了阀值)时.相同会自己主动增长. Has ...
- crm操作观点
using System; using Microsoft.Xrm.Sdk; using Microsoft.Crm.Sdk.Messages; /// <summary> ...
- 【PLSQL】变量声明,结构语句,cursor游标
************************************************************************ ****原文:blog.csdn.net/clar ...
- maven的webapp产品热销部署eclipse,biz和其他子项目jar一揽子的解决方案无法找到!
eclipse maven 这也太坑.. ..右键单击该项目 在这里,当地仓库子项目jar新增可以成功启动tomcat... ( maven项目年初进口eclipse他们是正常的. 当...的时候we ...
- 右键菜单中的好友列表Ajax直接跳转请求到登陆页面
今天,我们正在做正确的菜单.当点击重命名Ajax要求,并且不发送数据的背景,但直接跳到主页. 我百思不得其解,后来我发现在头版的一个问题: <li><a href='#' oncli ...