0

コンテキストメニューを登録する2つのボタンがあります

but1=(ImageButton)findViewById(R.id.imageViewX);
but2=(ImageButton)findViewById(R.id.imageViewY);      
registerForContextMenu(but);
registerForContextMenu(but2);

onContextItemSelected(MenuItem item) で、ユーザーが but1 または but2 をクリックしたかどうかを知る方法に問題がありますか? id=item.getItemId(); で 選択したアイテムのIDを持っていますが、onContextItemSelectedメソッドでどのボタンがクリックされたか知りたいです。

4

1 に答える 1

0

contextitem を作成するときは、2 つの Imagebutton のそれぞれに一意の ID を作成します

 public void onCreateContextMenu(ContextMenu menu, View view, ContextMenu.ContextMenuInfo menuInfo)
 {
   if(view.getId() == R.id.imageViewX)
      menu.add(Menu.NONE, Menu.FIRST+1, Menu.NONE, "imageViewX");
   else     
      menu.add(Menu.NONE, Menu.FIRST+10, Menu.NONE, "imageViewY");

   super.onCreateContextMenu(menu, view, menuInfo);
 }

そして、

public boolean onContextItemSelected(MenuItem item) {
    if (item.getItemId() == (Menu.FIRST+1)) {
       //do something
    }else if(item.getItemId() == (Menu.FIRST+10)){
       //do something else
    }

}
于 2012-09-02T13:47:37.450 に答える