我是编程的完全新手,并且在使用WHERE year_id ='一个选定年份变量'实现SELECT查询时遇到问题,以在列表视图中显示结果。我的代码如下所示显示存储在数据库中的所有条目。如何改变它以将其过滤到year_id中的选定年份,因为我尝试做的任何事情都会导致我的应用崩溃?我花了几个小时寻找教程和类似的问题,但我仍然在答案中丢失.......真的很感激一些帮助
MyDBHelper mh = new MyDBHelper(this);
mDb = mh.getWritableDatabase();
mCursor = mDb.query("tracker", null, null, null, null, null,
"category_name ASC");
startManagingCursor(mCursor);
int view[] = {R.id.categoryNameView, R.id.dataView, R.id.placeView, R.id.amountView};
String col[] = { "category_name", "date", "place", "amount"};
SimpleCursorAdapter ca = new SimpleCursorAdapter(
this, R.layout.display_item, mCursor, col, view);
DisplayAllView = (ListView) findViewById(R.id.DisplayDateListView);
DisplayAllView.setAdapter(ca);
答案 0 :(得分:2)
查看db.query
的javadoc3d和第4个arg是
选择过滤器声明哪个 要返回的行,格式化为SQL WHERE子句(不包括WHERE 本身)。传递null将返回所有 给定表的行。 selectionArgs你可以包含? 选择,将被替换 来自selectionArgs的值 命令它们出现在 选择。值将绑定为 字符串。
所以你会做类似
的事情mCursor = mDb.query("tracker", null,
"year_id = ?", new String[] { String.valueOf(year)},
null, null, "category_name ASC");