Сотовые элементы ActionBar - Crashing App - PullRequest
0 голосов
/ 03 июля 2011

Я разрабатываю приложение для Android для устройств 2.1 Eclair -> 3.0 Honeycomb.Сейчас я перехожу к созданию области пользовательских настроек.Я наткнулся на загвоздку с пунктами Menu & ActionBar.

Я создал ресурс xml меню с моими элементами и значками, а затем подключил его в Java с помощью:

Я добавил этиимпорт поверх того, что у меня уже было:

import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;

А затем этот код в моей деятельности на сайте разработчиков Android сказал :

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.pixelappmenu, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case R.id.menuItem_Help:
        helpDialogGo();
        return true;
    case R.id.menuItem_Settings:
        settingsActivityGo();
        return true;
    default:
        return super.onOptionsItemSelected(item);
    }
}

(Этоэто все, что я добавил, так как он работал нормально. Я даже прокомментировал все эти новые вещи, и он снова начал работать на Honeycomb.)

Это сработало, когда я протестировал его на Froyo - появилось меню с заголовками изначков, как и предполагалось, но когда я пытаюсь запустить приложение на своем планшете Honeycomb, оно принудительно закрывается, даже не показывая приложение в течение доли секунды.

Некоторый другой, возможно, соответствующий код:

извлечь из androidmanifest.xml

<uses-sdk 
    android:minSdkVersion="7" 
    android:targetSdkVersion="11" />

pixelappmenu.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:title="Help"
        android:id="@+id/menuItem_Help"/>
    <item
        android:title="Settings"
    android:id="@+id/menuItem_Settings"
    android:onClick="onMenuItemClick_Settings"/>
</menu>

1 Ответ

0 голосов
/ 04 июля 2011

Я нашел исправление.

В xml-файле меню (res / menu / mymenu.xml - или как вы его называли) вам нужно объявить, что пункт меню может находиться наПанель действий.Вы делаете это, помещая

android:showAsAction="ifRoom|withText"

в свой элемент в своем XML.

Пример кода здесь:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
    android:title="Help"
    android:id="@+id/menuItem_Help"
    android:showAsAction="ifRoom|withText"/>
<item
    android:title="Settings"
    android:id="@+id/menuItem_Settings"
    android:showAsAction="ifRoom|withText"/>
</menu>
...