Запустить действие из элемента (ActionBar)?

Я использую ActionBarCompat для создания панели действий для устройств с API 11. Он отлично работает и его легко настроить, но я застрял.

У меня есть несколько элементов на панели действий, и это выглядит великолепно. Некоторые элементы находятся за тремя точками (ifRoom), а некоторые вы всегда можете видеть.

Как мне сделать это, когда вы нажимаете на один из этих элементов, чтобы он запускал новую активность? Я пробовал с переключателем/кейсом и другими методами, но не получилось отправить из одного действия в другое через элементы. Я знаю, как отправить кнопку, кнопку изображения в другое действие, но не из элементов.

Мой main.xml выглядит так:

<item 
    android:id="@+id/add"
    android:title="Lägg till"
    android:icon="@drawable/new"    
    android:orderInCategory="1"
    budsnabben:showAsAction="always"/>

А код в MainActivity выглядит так:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch(item.getItemId()) {
    case R.id.:
        Intent intent = new Intent(this, MapActivity.class);
        this.startActivity(intent);
        break;
    case R.id.menu_item2:
        // another startActivity, this is for item with id "menu_item2"
        break;
    default:
        return super.onOptionsItemSelected(item);
    }

    return true;
}

}

Проблема в случае R.id.... После Id я не получаю свою карту класса или основную, ее там нет.

Спасибо.

РЕШЕНИЕ:

Просто хочу поблагодарить тебя, Джерард.

Я создал новые строки в strings.xml. После этого я изменил заголовок в main.xml на это:

android:title="@string/add"

Я жестко закодировал эту строку, как и раньше, поэтому я думаю, что это не сработало:

android:title="@+id/add"

Спасибо еще раз.


person DMT82    schedule 13.10.2013    source источник
comment
Рад был помочь, удачи!   -  person Gerard    schedule 14.10.2013


Ответы (1)


Используйте public boolean onOptionsItemSelected(MenuItem item) { ... } в своей деятельности с помощью панели действий и создайте переключатель, соответствующий item.getItemId() с идентификаторами из макета меню. После этого создайте соответствующее намерение, как если бы вы использовали обычную кнопку.

person Gerard    schedule 13.10.2013
comment
Пожалуйста, добавьте макет панели действий, у вас может быть ошибка в объявлении вашего идентификатора. - person Gerard; 13.10.2013