gpt4 book ai didi

java - 从另一个 Activity 获取数据会给出 RuntimeException

转载 作者:行者123 更新时间:2023-12-02 01:44:25 25 4
gpt4 key购买 nike

在我的菜单屏幕中,用户必须使用其 Google 帐户登录才能使用我的应用程序。成功登录后,用户将进入个人资料屏幕,其中将显示他们的姓名、电子邮件和 Gmail 个人资料图片。

在我的 Profile 类的 onCreate 方法中,我有这样的代码块:

Intent dataFromMain = getIntent();
String fullName = dataFromMain.getExtras().getString("name");
String user_email = dataFromMain.getExtras().getString("email");
String profile_pic = dataFromMain.getExtras().getString("img_url");

Name.setText(fullName);
Username.setText(user_email);
Glide.with(this).load(profile_pic).into(Prof_Pic);

基本上,它从 Menu 类获取数据(姓名、电子邮件和个人资料图片 URL),并能够使用该数据在个人资料屏幕上设置用户的姓名、显示他们的电子邮件并显示他们的 Gmail个人资料图片。当我第一次登录时,一切正常。

但是,我的应用程序顶部有一个导航栏。假设用户进入游戏屏幕,然后返回个人资料屏幕。应用程序崩溃了,这就是我得到的结果:

E/AndroidRuntime: FATAL EXCEPTION: main
Process: app.debata.com.debata, PID: 11783
java.lang.RuntimeException: Unable to start activity ComponentInfo{app.debata.com.debata/app.debata.com.debata.Profile}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.os.Bundle.getString(java.lang.String)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2955)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3030)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1696)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6938)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.os.Bundle.getString(java.lang.String)' on a null object reference
at app.debata.com.debata.Profile.onCreate(Profile.java:84)
at android.app.Activity.performCreate(Activity.java:7183)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1220)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2908)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3030) 
at android.app.ActivityThread.-wrap11(Unknown Source:0) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1696) 
at android.os.Handler.dispatchMessage(Handler.java:105) 
at android.os.Looper.loop(Looper.java:164) 
at android.app.ActivityThread.main(ActivityThread.java:6938) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374) 

当我尝试返回个人资料屏幕时,为什么我的应用程序崩溃了?我相信我使用 getExtras()getString() 方法的地方导致了问题。

编辑:在菜单 Activity 中包含显示数据如何发送的方法。

private void handleResult(GoogleSignInResult result) {
if(result.isSuccess()) {
GoogleSignInAccount account = result.getSignInAccount();
String name = account.getDisplayName();
String email = account.getEmail();
String img_url = account.getPhotoUrl().toString();

Intent intent = new Intent(this, Profile.class);
intent.putExtra("name", name);
intent.putExtra("email", email);
intent.putExtra("img_url", img_url);

startActivityForResult(intent, 1);
}
}

最佳答案

Try this

Intent dataFromMain = getIntent();
String fullName = dataFromMain.getStringExtra("name");
String user_email = dataFromMain.getStringExtra("email");
String profile_pic = dataFromMain.getStringExtra("img_url");

Name.setText(fullName);
Username.setText(user_email);
Glide.with(this).load(profile_pic).into(Prof_Pic);

关于java - 从另一个 Activity 获取数据会给出 RuntimeException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53909715/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com