Ответ 1
ActionBarActivity extends android.support.v4.app.FragmentActivity, поэтому ActionBarActivity служит для обеих целей.
ОК, я расширил свою деятельность до
extends ActionBarActivity
Моя страница главного меню
extends FragmentActivity
когда я изменяю его, чтобы расширить ActionBarActivity, чтобы я мог видеть заголовок панели действий в главном меню, он подбрасывает и дает мне ошибку "Разрушение класса Inflating Class".
Есть ли способ обойти это?
ActionBarActivity extends android.support.v4.app.FragmentActivity, поэтому ActionBarActivity служит для обеих целей.
Является ли ваш код примером совместимости Action Bar, который поставляется вместе с SDK? Если это так, просто измените класс ActionBarActivity в этом примере, чтобы расширить FragmentActivity (из библиотеки совместимости, я предполагаю) вместо Activity.
Опытная же проблема и решение, как упоминалось в других ответах, заключается в редактировании вашего класса ActionBarActivity
.
Этот класс определен в вашем коде (com.google.android.actionbarcompat
). Единственное, что вам нужно сделать, это изменить extends Activity
на extends FragmentActivity
на android.support.v4.app.FragmentActivity
.
У вас есть пункты меню для ваших фрагментов? Используйте собственное пространство имен app
вместо android
для app:showAsAction
и app:actionLayout
и т.д.
Чтобы добавить ваше пространство имен в XML, используйте эту строку в теге menu
xmlns:app="http://schemas.android.com/apk/res-auto"
например.
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/menu_settings" app:showAsAction="ifRoom" android:title="@string/menu_settings" android:orderInCategory="100" />
</menu>
Обратите внимание на app:showAsAction
, а не на android:showAsAction