首页 > 解决方案 > 是否可以再次使用具有相同 putextra 值的相同意图?

问题描述

新编辑我在问题结束时更新了堆栈跟踪。

编辑

以下是另一个正在运行的活动的代码。 bottom_nav_camera_yes_button是一项活动,但我将其命名为 yes_button 因为当我单击 时会出现活动yes_button

yes_button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startSave();
                pointCounter();
                //move to yes_button activity
                Intent int_yes = new Intent(bottom_nav_camera.this, bottom_nav_camera_yes_button.class);
                //passing the topLabels[0] to yes_button activity
                int_yes.putExtra("topLabels", topLabels[0]);
                startActivity(int_yes);
            }
        });

我在putExtra("topLabels", label)两个不同的活动中重复使用相同的内容,但是每当我包含这一行时,应用程序就会完全关闭。有没有办法重用相同的putExtra变量?

yes_button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view)
            {
                //move to yes_button activity
                Intent int_yes = new Intent(bottom_nav_camera_no_button_details.this, bottom_nav_camera_yes_button.class);
                //passing the topLabels[0] to yes_button activity
                int_yes.putExtra("topLabels", label);
                startActivity(int_yes);
            }
        });

堆栈跟踪

2020-04-04 17:58:33.838 15812-15812/com.codepath.wmgf8 E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.codepath.wmgf8, PID: 15812
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.codepath.wmgf8/com.codepath.wmgf8.bottom_nav_camera_yes_button}: java.lang.NullPointerException: Attempt to get length of null array
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2913)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:193)
        at android.app.ActivityThread.main(ActivityThread.java:6669)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
     Caused by: java.lang.NullPointerException: Attempt to get length of null array
        at com.codepath.wmgf8.bottom_nav_camera_yes_button.displayPhoto(bottom_nav_camera_yes_button.java:103)
        at com.codepath.wmgf8.bottom_nav_camera_yes_button.onCreate(bottom_nav_camera_yes_button.java:87)
        at android.app.Activity.performCreate(Activity.java:7136)
        at android.app.Activity.performCreate(Activity.java:7127)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048) 
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78) 
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108) 
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808) 
        at android.os.Handler.dispatchMessage(Handler.java:106) 
        at android.os.Looper.loop(Looper.java:193) 
        at android.app.ActivityThread.main(ActivityThread.java:6669) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) 

标签: androidandroid-intent

解决方案


您的问题可能不在这里bottom_nav_camera_yes_button当您获得额外并尝试获得其长度但额外为空时,您的异常可能出现

正如堆栈跟踪所说:

无法开始活动 ComponentInfo{com.codepath.wmgf8/com.codepath.wmgf8.bottom_nav_camera_yes_button}:: java.lang.NullPointerException尝试获取空数组的长度

bottom_nav_camera_yes_button.java在(displayPhoto()方法)中查找第 103 行

com.codepath.wmgf8.bottom_nav_camera_yes_button.displayPhoto( bottom_nav_camera_yes_button.java:103)


推荐阅读