In all the examples I have found, a menu is created for one view.
How to create context menus for several items in one Activity?
1 answer
So, in theory, you can do. We write all code in aktivit.
1) We find the views we need and register them to receive the event for calling the context menu:
TextView tV = (TextView) findViewById(R.id.yours_text_view_id); registerForContextMenu(tV); ImageView iV = (ImageView ) findViewById(R.id.yours_image_view_id); registerForContextMenu(iV);
2) Override the activation methods:
@Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { switch (v.getId()) { case R.id.yours_text_view_id: menu.add(0, 0, 0, "Получить тест статьи"); menu.add(0, 1, 0, "Комментарии"); menu.add(0, 2, 0, "Открыть в браузере"); break; case R.id.yours_image_view_id: menu.add(0, 3, 0, "Ещё кнопка0"); menu.add(0, 4, 0, "Ещё кнопка1"); menu.add(0, 5, 0, "Ещё кнопка2"); break; } } @Override public boolean onContextItemSelected(MenuItem item) { switch (item.getItemId()) { case 0: //что-то делаем break; case 1: //что-то делаем break; case 2: //что-то делаем break; case 3: //что-то делаем break; case 4: //что-то делаем break; case 5: //что-то делаем break; case 6: //что-то делаем break; } return super.onContextItemSelected(item); }
- Everything works, thank you. - kitto
- @kitto, If you are given an exhaustive answer, mark it as correct (click on the check mark next to the selected answer). - YurySPb ♦
- I would love to, but there is no daw here. - kitto
- @kitto, look better, here is a screenshot with an example: dropbox.com/s/zessgd45kht97de/… - Yuriy SPb ♦
|