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.两者虽然名称不一样,但是其使用方法,使用场景以及该控件的功能都极为相似,都是用来展示大量 ...
随机推荐
- 解决TabActivity中子页面不通过导航跳转到还有一个页面的问题
问题:当你的导航在TabActivity中 而子页面的一个button须要切换到当中的某一个导航页面 转载请注明出处:http://blog.csdn.net/x605940745 demo下载地址: ...
- 【Android开发经验】Android举UI设计经验
转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 1.Android眼下的主流设备分辨率为480×800.720×1280.1080×1920,单位是像素.在 ...
- oracle错误之 ora-01017
ora-01017 现象描述: scott用户和其它建立的用户,都登的上.但sys和system用户登录不上 方案一(试过,不行): 1,打开目录:F:\app\Administrator\produ ...
- python中使用traceback来追踪异常
test1.py中,当分母为0的时候,调用系统退出 #!/usr/bin/python import sys def division(a=1, b=1): if b==0: print 'b eq ...
- javascript 的bind/apply/call性能
javascript有两种使用频率非常高的三个内置的功能:bind/apply/call.许多技术是基于高点,这些功能实现.这三个功能被用来改变的功能运行环境.从而达到代码复用的目的. 先来所说bin ...
- 用Linux/Unix命令把十六进制转换成十进制(转)
那天写个脚本,需要把十六进制的数字转成十进制的打出来,发现不知道要怎么弄,搜一下,原来还是很简单的,比用C语言什么的容易多了,就一些现成的命令就解决了. 先列两种简单的方法: 1) echo 自己就能 ...
- ListView嵌套GridView显示不完整的解决方案
转载注明出处:http://blog.csdn.net/allen315410/article/details/40152987 近期在做项目中,有个模块须要在ListView中嵌套一个GridVie ...
- Light OJ 1406 Assassin`s Creed 减少国家DP+支撑点甚至通缩+最小路径覆盖
标题来源:problem=1406">Light OJ 1406 Assassin`s Creed 意甲冠军:向图 派出最少的人经过全部的城市 而且每一个人不能走别人走过的地方 思路: ...
- 认识Require
1. 加载require.js文件 <script type="text/javascript" src="js/require.js" data-mai ...
- 玩转Web之servlet(二)---servlet常见错误
1>403:tomcat发生错误 2> 404 :意思是服务器依据请求资源路径,找不到对应的资源 解决:1.依据http://localhost:8080/Web工程名/ur ...