工具栏中的向上箭头无后退

时间:2020-06-30 20:13:49

标签: android back arrow-functions

我想添加返回我到父类主要活动的箭头,我使用材质设计添加了工具栏。 应该只能在第二个活动中添加此代码

 getSupportActionBar().setDisplayHomeAsUpEnabled(true);

但是当我这样做时,它无法打开应用程序,并且出现以下错误

06-30 15:04:57.869 11854-11854/com.niccode.pets W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x41786930)
06-30 15:04:57.879 11854-11854/com.niccode.pets E/AndroidRuntime: FATAL EXCEPTION: main
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.niccode.pets/com.niccode.pets.Favorites}: java.lang.NullPointerException
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
        at android.app.ActivityThread.access$600(ActivityThread.java:141)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:137)
        at android.app.ActivityThread.main(ActivityThread.java:5041)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:511)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
        at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.NullPointerException
        at com.niccode.pets.Favorites.onCreate(Favorites.java:14)
        at android.app.Activity.performCreate(Activity.java:5131)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1090)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)

因此,我在xml内和Java文件中添加了工具栏。但是现在显示了日期,但并没有使我回到父文件的主要活动

谢谢

package com.niccode.pets;

import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;

import android.os.Bundle;

public class Favorites extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_favorites);

        Toolbar mybar = (Toolbar) findViewById(R.id.my_toolbar);
        setSupportActionBar(mybar);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);




    }


}

xml第二项活动

<androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".Favorites">
<include android:id="@+id/my_toolbar" layout="@layout/toolbar"/>
</androidx.constraintlayout.widget.ConstraintLayout>

Manifiedt文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.niccode.pets">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".Favorites"
            android:parentActivityName=".MainActivity">

            <meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value=".MainActivity"
                >

            </meta-data>
        </activity>
    </application>

</manifest>

按下箭头不会执行任何操作

1 个答案:

答案 0 :(得分:0)

这段代码之后:

setSupportActionBar(mybar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);

添加导航onclick侦听器:

mybar.setNavigationOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            onBackPressed();
        }
});
相关问题