我有一个显示列表的活动。该列表是从sqlite数据库中获取的数据填充的。我正在使用simpleCursorAdapter。单击列表中的项目时,我想转到另一个活动页面以显示有关单击列表项的更多详细信息。为此,我需要在数据库中给出的单击列表项的_id(主键),以便我可以使用该ID查询数据库,并在用户单击列表项时加载的下一个活动中显示更多详细信息。使用onItemClickListener,如何做到这一点?我很感激任何建议。提前谢谢!
答案 0 :(得分:3)
将_id(主键)设置为列表项的ID:数据适配器
适配器:
@Override
public long getItemId(int position) {
return position;//you can return your ID
}
的活动:
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//id == getItemId(int position);
}
});
也做:
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//listView.getAdapter().getItem(position) -> getId;
}
});
答案 1 :(得分:0)
您可以将意图传递给下一个活动:
Intent intent = new Intent(this, your_next_activity.class);
intent.putExtra("ID", id);
startActivity(intent);
Intent intent = getIntent();
int id= intent.getIntExtra("ID", 0);
然后你有了ID,你可以查询数据库:
Cursor c = yourDBHelper.getAllDetailsMethod(); //method inside Your db-helper that gives You the cursor
int rows = c.getCount();
c.moveToFirst();
for(int i=0;i<rows;i++){
int db_id = c.getInt(0) //this belongs to the place where Your id is inside the db
if(db_id==id){
//here You can get all details you need
break;//stop quering
}else{
c.moveToNext();
}
}
但是为了给你一个很好的解决方案,如果你告诉我们你到目前为止做了什么,那将会很好。