Обнаружение нажатия клавиши в подменю ActionBarSherlock

Как определить нажатие клавиши и какой ключевой пользователь нажал на SubMenu? [тот, что на панели действий, где пользователь нажимает, и выпадает длинный список]

 SubMenu subMenu1 = menu.addSubMenu("Option");
        subMenu1.add("Comments");
        subMenu1.add("More screens");
        subMenu1.add("Copy Website URL");
        subMenu1.add("Go to Website");

        MenuItem subMenu1Item = subMenu1.getItem();
        subMenu1Item.setIcon(R.drawable.icon_share);
        subMenu1Item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT);


@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case android.R.id.home:
        finish();
        break;
    }

    return true;
}

person MrYanDao    schedule 15.01.2013    source источник


Ответы (1)


Я полагаю, вы имеете в виду «какой элемент выбирает пользователь» в меню, а не «какую клавишу пользователь нажал». Вы можете указать действие в методе onOptionsItemSelected(), который у вас уже есть. Но прежде нужно...

Наконец, просто используйте параметр itemId из метода add() (первое решение) или android:id из XML (второе решение), чтобы принять решение о действии в операторе switch метода onOptionsItemSelected().

person saschoar    schedule 16.01.2013
comment
Можете ли вы помочь мне изменить цвет элементов подменю @saschoar? Я искал код ABS и в abs_styles.xml, в ‹style name=Widget.Sherlock.ListPopupWindow parent=Widget›, я изменил popupbackground, но ничего не происходит? - person Diffy; 15.06.2014