Как описать контекстные меню для нескольких view в одной Activity?

Рейтинг: 3Ответов: 1Опубликовано: 10.11.2014

Во всех найденных мною примерах создается меню для одного view.
Как создать контекстные меню для нескольких элементов в одной Activity?

Ответы

▲ 5Принят

Так, по идее, можно сделать. Весь код пишем в активити.

1) Находим нужные нам вьюхи и регистрируем их для получения события вызова контестного меню:

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
    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);
    }