【发布时间】:2014-01-23 22:06:56
【问题描述】:
我正在尝试在 Android 中自定义一个列表,其中包含带有文本视图和图像视图的行。
有: 三个文本视图(TextViewPurpose、TextViewStart、TextViewInfo)我可以直接从数据库中获取(目的、开始、信息)
另外两个textview(TextViewCO2,TextViewCalory)我需要根据数据库中的值来计算(我想根据距离计算CO2和卡路里,也在数据库中)
以及一个基于两个值的图像视图(ImageTripPurpose)(如果不上传,我使用图像。如果上传,图像将基于用途)。
现有代码仅将三个文本视图放入该行。
Cursor allTrips = mDb.fetchAllTrips();
SimpleCursorAdapter sca = new SimpleCursorAdapter(getActivity(),
R.layout.saved_trips_list_item, allTrips, new String[] {
"purp", "start", "info" }, new int[] {
R.id.TextViewPurpose, R.id.TextViewStart, R.id.TextInfo });
lv.setAdapter(sca);
当我只想在每一行上放一张图片时,我使用了这个,但它不起作用。
sca.setViewBinder(new SimpleCursorAdapter.ViewBinder(){
/** Binds the Cursor column defined by the specified index to the specified view */
public boolean setViewValue(View view, Cursor cursor, int columnIndex){
if(view.getId() == R.id.icon){
((ImageView)view).setImageResource(R.drawable.commute);
return true; //true because the data was bound to the view
}
return false;
}
});
另外,据说 SimpleCursor Adapter 不被鼓励,因为加载数据有延迟。建议使用 LoaderManager 和 CursorLoader。我应该怎么做才能解决这些问题?
【问题讨论】:
标签: android android-listview simplecursoradapter android-cursoradapter