我已经搜索了一段时间,但找不到任何可以帮助我解决问题的东西。
我在列表视图中有一个类别列表。我从 SQLiteDatabase 获取这些并使用 SimpleCursorAdapter 将它们放入列表中。这工作正常...
现在,如果我单击一个类别,我想启动一个新活动,显示具有该特定类别的所有项目。将参数传递给新活动不是问题 - 在这里找到了关于如何执行此操作的很好的教程:将数据或参数传递给另一个活动
我的问题是我无法从所选视图中获取 id...我想要来自所选类别的 id,以便我可以获取具有该 categoryId 的项目。这是我尝试从视图中获取 id 的地方 - 我使用了很多不同的方法(包括一些对列表视图、项目和位置的摆弄,......这是我最近的尝试)并且不知道是什么下次试试……
@Override
public void onItemClick(AdapterView<?> listview, View item, int position,
long itemId) {
Intent intent = new Intent();
Bundle bun = new Bundle();
bun.putInt("categoryId", (int) itemId);
intent.setClass(MainActivity.this, ItemsPerCategoryActivity.class);
intent.putExtras(bun);
startActivity(intent);
}
有没有人遇到过同样的问题,如果你有,你对我有什么建议吗?
问题是这样解决的:
Cursor c = (Cursor)listview.getAdapter().getItem(position);
int id = c.getInt(c.getColumnIndex(_ID)); //0 = index id
//Log.d("Category id", id + "");
Intent intent = new Intent();
Bundle bun = new Bundle();
bun.putInt("categoryId", id);
intent.setClass(MainActivity.this, ItemsPerCategoryActivity.class);
intent.putExtras(bun);
startActivity(intent);