我是Android新手并开始研究数据库和listview。我想使用subjectID作为我创建的列表视图的ID。因此,当点击项目时,我可以使用该ID查询数据库中的记录。我知道这被问了很多次,但似乎没有什么对我有用。在此先感谢您的帮助。
SQL的一部分:subjectID为_id
我有这段代码:
String[] dataColumns = { "subjectName","shortemail", "lastScanDate", "lastScore" } ;
int[] viewIDs = { R.id.list_column1 , R.id.list_column2, R.id.list_column3, R.id.list_column4 };
SimpleCursorAdapter adapter
= new SimpleCursorAdapter(
this, // The Context for the ListView
R.layout.subject_line, // Points to the XML for a list item
cursor, // The cursor to get items from
dataColumns,
viewIDs
);
setListAdapter(adapter);
db.close();
public void onListItemClick(ListView l, View v, int position, long id) {
//codes here
}
答案 0 :(得分:1)
如果您阅读了CursorAdapter的源代码,您可以找到:
public long getItemId(int position) {
if (mDataValid && mCursor != null) {
if (mCursor.moveToPosition(position)) {
return mCursor.getLong(mRowIDColumn);
} else {
return 0;
}
} else {
return 0;
}
}
分配了mRowIDColumn
:
mRowIDColumn = cursorPresent ? c.getColumnIndexOrThrow("_id") : -1;
这意味着,如果您使用“_id”作为数据库ID,getItemId()
将是数据库的ID。
答案 1 :(得分:0)
只需获取row_id并存储在ArrayList<Integer> arraylist = new ArrayList<Integer>;
然后在onItemClick()
中插入此代码:
row_id = arraylist.get(position);
startActivity(new Intent(PresentActivity.this, NextActivity.class).putExtra("row_id", row_id));
希望这会对你有所帮助。 如果您需要进一步的帮助,请告诉我。
这不是唯一的方法,我们可以做到这一点。这是最简单的方法。