1

TextViewと画像アイコンのアクティビティがあります。をオーバーライドして、画像アイコンのコンテキスト メニューを既に作成しましたonCreateContextMenu()

ただし、 の別のコンテキスト メニューも必要TextViewです。しかし、私はすでに利用していることに気付きましたonCreateContextMenu():

public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {  
    super.onCreateContextMenu(menu, v, menuInfo);  
    menu.setHeaderTitle(getString(R.string.option1));  
    menu.add(0, v.getId(), 0, getString(R.string.option2));  
    menu.add(0, v.getId(), 0, getString(R.string.options3));  
}

したがって、別のコンテキスト メニューを追加する方法はありますTextViewか?

4

2 に答える 2

3

渡された View オブジェクトをonCreateContextMenuで使用して、メニューの所有者を決定し、それに応じてメニューを設定できます。

コードは次のようになります。

public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {  
    super.onCreateContextMenu(menu, v, menuInfo);  
        switch (v.getId()) {
          case R.id.imageIconId:
             menu.setHeaderTitle(getString(R.string.option1));  
             menu.add(0, v.getId(), 0, getString(R.string.option2));   
             menu.add(0, v.getId(), 0, getString(R.string.options3));  
           break;
          case R.id.textViewid:
            // do whatever you want with the menu object.
           break;
}
    }   
于 2013-03-02T17:07:44.030 に答える
2

そのメソッドによって渡されたパラメーターは、さまざまなものに分岐するのに役立ちます。

次に例を示します。

public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {  
    super.onCreateContextMenu(menu, v, menuInfo);
        if( v.equals(yourImgView) ){
            menu.setHeaderTitle(getString(R.string.option1));  
            menu.add(0, v.getId(), 0, getString(R.string.option2));  
            menu.add(0, v.getId(), 0, getString(R.string.options3));  
        }else if ( v.equals(yourTxtView) ) {
            //Do your textView things.
        }

    } 
于 2013-03-02T17:09:17.623 に答える