アンドロイド:どのようActionBarCompat (ツールバー)にアクションバーを変更するための/チュートリアルに?

? LemonGentry @ | Original: StackOverFlow

。 ?私は、このに引っかかっ公式ガイダンスをチェックしてきた、などの任意のチュートリアルは/ツールバーと旧バージョンのサポートのために( ActionBarCompatにアクションバーから変更する手順は、私がAppCompatの-V7輸入してきたものである: 21.0を+ 、試した

getSupportActionBar(); and

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)


Top 5 Respuesta

1Andrew Butler @

私のアプリケーションは、同時にツールバーとアクションバーを使用できないことですし、私は学んだ。だからあなたの問題がどこにあることが考えられますが、あなたはあなたのコードを投稿していなかったが、あなたはどちらかそこらのように指定することの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

       }

    }

参考: http://antonioleiva.com/material-design-everywhere/ ..はこのことができますね!



2AG1 @

@アンドリュー·バトラー:良い答え、アクションバーを使用しないための標準的な方法がありますが。

<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>
3Akash Bangad @

ここではあなたが望むように、ツールバーを実装するに役立つかもしれない記事です ここに記事がある  http://www.android4devs.com/2014/12/how-to-make-material-design-app.html

4JD2015 @

アクションバーなしで1へのあなたのテーマの親を設定します。例えば

<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>

もはやfalseにwindowActionBarを設定する必要はないであろう。