我試圖獲取ListView成員的數據庫ID,以便我可以將它傳遞給一個新的活動,但SimpleCursorAdapter的.getItemId(位置)方法返回null,而不是數據庫中的_id。這是我的理解,這應該返回光標抓住_id字段,但它不適合我。也許需要一些建議dataSource.getItemId(position)返回null
DatabaseHelper helper = new DatabaseHelper(this);
database = helper.getWritableDatabase();
Cursor data = database.query("myDb", fields, null, null, null, null, null);
dataSource = new SimpleCursorAdapter(this, R.layout.row, data, fields, new int[] {R.id.idText, R.id.castName, R.id.castDescription});
data.moveToFirst();
final ListView view = getListView();
view.setHeaderDividersEnabled(true);
view.addHeaderView(getLayoutInflater().inflate(R.layout.row, null));
setListAdapter(dataSource);
database.close();
view.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
// Prepare intent
Intent newActivity = new Intent(getApplicationContext(), ItemIdTester.class);
newActivity.putExtra("itemId",dataSource.getItemId(position));
// start activity
startActivity(newActivity);
}
});
確實R.id.idText有_id映射嗎? – nandeesh 2012-01-15 16:56:09
是的,文本得到適當的填充,據我可以告訴 – Carnivoris 2012-01-15 17:08:04
你要查詢哪些字段? – JoxTraex 2012-01-15 18:38:12