私はこれをしばらく探していましたが、私の問題を解決するのに役立つものは何も見つかりません.
リストビューにカテゴリのリストがあります。これらを 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);