TLDR:
クリックされたアイテムを参照するときは、「2131427332」ではなく「shareButton」を使用しますonCreateContextMenu()
。これどうやってするの?
説明:
2つのコンテキストメニューがあるアクティビティがあります。したがって、私のonCreateContextMenu()
メソッドでは、クリックされたアイテムのIDを取得し、対応するメニューを膨らませています。
しかし、それを行う方法を知っている唯一の方法は、v.getId();
自分で作成したIDの代わりにifブロックでシステム生成のIDを使用しているため、これは悪い/奇妙に思えます。これを行うためのより良い方法はありますか?そのIDは変更されますか?この自動生成されたIDの代わりにXMLアイテムのIDを使用できますか?
コード:
/**
* Opens the context menu(s)
*/
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo)
{
super.onCreateContextMenu(menu, v, menuInfo);
MenuInflater inflater = getMenuInflater();
if(v.getId() == 2131427332)
{
inflater.inflate(R.menu.share_menu, menu);
}
else if(v.getId() == 2131427329)
{
inflater.inflate(R.menu.options_menu, menu);
}
}