展会信息港展会大全

android之自定义SimpleCursorAdapter的使用
来源:互联网   发布日期:2015-10-02 16:21:17   浏览:1211次  

导读:SimpleCursorAdapter直接使用的方法:SimpleCursorAdapter允许你绑定一个游标的列到ListView上,并使用自定义的layout显示每个项目。Simple...

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开发 教程

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港