gpt4 book ai didi

android - getStringExtra() 返回 NullPointerException

转载 作者:行者123 更新时间:2023-11-29 17:52:48 24 4
gpt4 key购买 nike

我正在尝试编写一个简单的应用程序,它会在按下按钮时打开一个新 Activity 。然后用户将能够在文本字段中输入一些文本,按下 Enter 按钮应该将他们返回到 TextView 应该显示的文本的主要 Activity 他们进来了。

在我的主 Activity 类中,按下按钮时我会启动新的 Activity:

private void startExplicitActivation() {
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
startActivityForResult(intent, GET_TEXT_REQUEST_CODE);
}

我还在我的主要 Activity 类中定义了 onActivityResult(),如下所示:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
if (requestCode == GET_TEXT_REQUEST_CODE) {
mUserTextView.setText(data.getStringExtra("input"));
}
}
}

其中 mUserTextView 是我想根据用户在第二个 Activity 中输入的文本更改的 TextView 对象。它已在主 Activity 的 onCreate() 方法中初始化。

在我的第二个 Activity 中,我尝试创建一个新的 Intent 并在单击按钮时调用 putExtra():

private void enterClicked() {
String input = mEditText.getText().toString();

Intent intent = new Intent();
intent.putExtra("input", input);

setResult(RESULT_OK);
finish();
}

我试过调试它,它能够从我的 mEditText 中获取文本并将其分配给 input。在我的 Intent 对象中,它将文本适本地放入 input 中,但是当我返回到我的主要 Activity 时,它给我一个错误:

Caused by: java.lang.NullPointerException

它指向这一行:

mUserTextView.setText(data.getStringExtra("input"));

这是因为我使用了finish()方法吗?我认为在我完成一项 Activity 后使用是合适的,但我是否应该这样做:

private void enterClicked() {
String input = mEditText.getText().toString();

Intent intent = new Intent(SecondActivity.this, MainActivity.class);
intent.putExtra("input", input);

setResult(RESULT_OK);
startActivity(intent);
}

最佳答案

替换

setResult(RESULT_OK);

setResult(RESULT_OK,intent);

当您想将信息传递给调用者时 Activity ,通过Intent发回结果并且不要启动 Activity再次在 enterClicked() .只需调用 finish()setResult() 之后.这将调用 onActivityResult()来电者 Activity Intent data在哪里参数包含你传递的信息...

关于android - getStringExtra() 返回 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21772475/

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