gpt4 book ai didi

java - getExtras() 在向后导航时返回 null

转载 作者:行者123 更新时间:2023-11-29 04:44:18 26 4
gpt4 key购买 nike

所以,我开始 MainActivity.java 有以下代码。

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

findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(MainActivity.this, SecondActivity.class);
Bundle bundle = new Bundle();
bundle.putString("testString", "TestString");
i.putExtras(bundle);
startActivity(i);
}
});
}

我的 ScondActivity.java 有以下代码。

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

String s = getIntent().getExtras().getString("testString");
Log.v(SecondActivity.class.getSimpleName(), s);

findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(SecondActivity.this, ThirdActivity.class);
Bundle bundle = new Bundle();
bundle.putString("testString", "TestString");
i.putExtras(bundle);
startActivity(i);
}
});
}

我的 ThirdActivity.java 有以下代码。

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

String s = getIntent().getExtras().getString("testString");
Log.v(ThirdActivity.class.getSimpleName(), s);
}

当我运行这个应用程序时,一切正常。但是当我从 ThirdActivity.java 返回到 SecondActivity.java 时,我在 String s = getIntent().getExtras 上得到了 NullPointerException ().getString("testString");.

我该如何克服这个问题?

非常感谢任何可能的帮助。

最佳答案

您收到此错误是因为使用 Intent 从一个 Activity 传递到另一个 Activity 的数据是临时的,并且在您切换到另一个 Activity 时被销毁。当您从 SecondActivity 切换到 ThirdActivity 时,来自 FirstActivity 的额外内容将被销毁。此问题的替代方法是您可以将这些额外内容存储在共享首选项中。使用共享首选项会将您的数据保存到本地存储,并且在每次 Activity 中都可用。可以找到共享首选项的指南 here

关于java - getExtras() 在向后导航时返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37895881/

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