Можно ли иметь 2 контекстных меню в одной и той же деятельности?

У меня есть активность с 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?

2 ответа

Решение

Вы можете использовать переданный объект 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;
}
    }   

Параметры, переданные вам этим методом, помогут вам переходить к различным вещам.

Вот пример:

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.
        }

    } 
Другие вопросы по тегам