Android: Как/Учебник по изменению ActionBar на ActionBarCompat (Панель инструментов)?
Я застрял на этом, проверил официальное руководство и т.д. Любые учебники/какие шаги нужно изменить с ActionBar на ActionBarCompat (для панели инструментов и поддержки старых версий? Я импортировал appcompat-v7: 21.0. +, попробовал
getSupportActionBar();
и
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar_actionbar);
setSupportActionBar(toolbar);
изменил тему на тему appcompat в стилях... Любые распространенные ошибки для заметок или идей?
Продолжайте получать такую ошибку:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.battery.plusfree/com.battery.plusfree.MainCollectionActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2212)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2271)
at android.app.ActivityThread.access$800(ActivityThread.java:144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5146)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:732)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:566)
at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:132)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at com.battery.plusfree.MainCollectionActivity.onCreate(MainCollectionActivity.java:133)
at android.app.Activity.performCreate(Activity.java:5231)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2169)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2271)
at android.app.ActivityThread.access$800(ActivityThread.java:144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5146)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:732)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:566)
at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:132)
at dalvik.system.NativeStart.main(Native Method)
Ответы
Ответ 1
Я узнал в своем приложении, что вы не можете одновременно использовать панель инструментов и панель действий. Так что это может быть проблема с вашей проблемой, но я не уверен, потому что вы не отправляли свой код, но используя файл styles.xml, вы должны указать либо или так:
<style name="AppTheme.Base" parent="Theme.AppCompat">
<item name="colorPrimary">@color/mycolorprimary</item>
<item name="colorPrimaryDark">@color/mycolorprimarydark</item>
<item name="android:windowNoTitle">true</item>
<item name="windowActionBar">false</item>
</style>
Activity.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:custom="http://schemas.android.com/apk/res-auto"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- dont use this if you only want to use the actionbar instead -->
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:elevation="5dp"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary" />
</LinearLayout>
Activity.java:
public class MyActivity extends ActionBarActivity {
Toolbar mToolbar;
public void onCreate(Bundle savedInstanceState) {
// configure toolbar stuff
setSupportActionBar(mToolbar);
// or if you don't want to use the toolbar
// then change the style values accordingly
// and then you can run getSupportActionBar() instead
}
}
Ссылка: here.. надеюсь, что это поможет!
Ответ 2
@Andrew Butler: хороший ответ, хотя есть стандартный способ не использовать панель действий.
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
<!-- Customize your theme here.>
</style>
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here.>
</style>
Ответ 3
Установите родительский элемент вашей темы на один без панели действий. Например
<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/mycolorprimary</item>
<item name="colorPrimaryDark">@color/mycolorprimarydark</item>
<item name="android:windowNoTitle">true</item>
</style>
Не нужно больше устанавливать windowActionBar в значение false.