いくつかの項目を持つ LisView があります。これに、次のように OnItemClickListener を (内部クラスとして) 接続しました。
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(ShoppingListApp02Activity.this, "List item selected:" +
items.get(position).getId(), Toast.LENGTH_LONG).show();
}
});
明らかなように、エントリを選択すると、そのエントリのオブジェクトの要素が表示されます。この例では、選択された Item オブジェクトの ID (リスト ID ではなく、ArrayList アイテムの作成時に設定されたオブジェクト ID) が表示されます。これはうまく機能し、選択したアイテムでやりたいことが何でもできるようになります。
ここで、選択した ListView 項目のコンテキスト メニューを開く「ロングクリック」リスナーも使用したいと考えています。それ、どうやったら出来るの?onCreateContextMenu リスナーを ListView にアタッチできましたが、onItemClickListener のように ArrayList の要素を取得する方法がわかりません。
これが私が持っているものです:
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
menu.add(0, v.getId(), 0, "Something");
menu.add(0, v.getId(), 0, "Something else");
}
OnCreateConextMenu は OnItemClickListener とは異なるパラメーターを取るため、OnItemClickListener のように ArrayList の要素にアクセスするにはどうすればよいですか?