Возникла такая проблема. Может кто подскажет как решить.
Регистрирую контекстное меню для 2 объектов, один из них вложен в другой.
Код: Выделить всё
elvMain = (ExpandableListView) findViewById(R.id.elvMain);
registerForContextMenu(elvMain);
ll = (LinearLayout)findViewById(R.id.LinearLayout1);
registerForContextMenu(ll);
В зависимости от того нажимаю на список или на общий компонент хочу вызвать 2 разных меню:
Код: Выделить всё
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
switch (v.getId()) {
case R.id.elvMain:
Log.d("myLogs", "elvMain");
menu.add(0, CM_CATEG_CREATE, 0, "Добавить категорию");
menu.add(0, CM_CATEG_EDIT, 0, "Редактировать категорию");
menu.add(0, CM_CATEG_DELETE, 0, "Удалить категорию");
break;
case R.id.LinearLayout1:
Log.d("myLogs", "LinearLayout1");
menu.add(0, CM_CATEG_CREATE, 0, "Добавить категорию");
break;
}
//super.onCreateContextMenu(menu, v, menuInfo);
}
Если нажимаю на фон (LinearLayout1), все нормально меню из 1 пункта, а вот если нажимаю на список меню открывается из всех 4 пунктов, вместо 3. Т.е. при нажатии на список вызывается onCreateContextMenu не только для списка но и для верхнего компонента. Как 2 действие отменить и сделать так, чтоб onCreateContextMenu вызывалось только для текущего компонента и не вызывалось для родительских view?