我正在使用SimpleCursorAdaptor和ListView来显示我的SQLite数据库行中的值。我的行中的一个值是日期(列'日期')。我不需要显示这个日期,而是需要通过一个方法运行它,该方法将根据日期返回另一个字符串。这是我希望在列表中显示的值,而不是直接从数据库中获取的实际值。
简而言之,我希望显示数据库表行中除了一行之外的所有值,我需要在显示它之前更改它。
这是我的代码:
public class BinCollectionDayListActivity extends ListActivity{
//
private static final String fields[] = { "name", "date", BaseColumns._ID };
//
public void onCreate(Bundle savedInstanceState) {
//
super.onCreate(savedInstanceState);
//
DatabaseHelper helper = new DatabaseHelper(this);
SQLiteDatabase database = helper.getWritableDatabase();
Cursor data = database.query("names", fields, null, null, null, null, null);
CursorAdapter dataSource = new SimpleCursorAdapter(this, R.layout.binrow, data, fields, new int[] { R.id.name, R.id.date });
dataSource.getCursor().requery();
//
ListView view = getListView();
view.setHeaderDividersEnabled(true);
setListAdapter(dataSource);
//
helper.close();
database.close();
}
}
正如您所知,我对Android开发很陌生,并且很想知道实现所需结果的最佳方法是什么。
提前致谢,
贝
答案 0 :(得分:0)
我以前用过的两个选项:
阵列适配器(首选): 创建一个ArrayAdapter并将Cursor数据填充到ArrayAdapter中。 http://anujarosha.wordpress.com/2011/11/17/how-to-create-a-listview-using-arrayadapter-in-android/
ViewBinder :在光标上,您可以设置/指定一个ViewBinder,您可以在其中检查即将映射的数据,对其执行某些逻辑,并根据需要吐出不同的结果。这可能正是您正在寻找的,但是请考虑使用ArrayAdapter,因为它可以让您更好地控制,以后稍后切换这些东西会很痛苦。 Changing values from Cursor using SimpleCursorAdapter