gpt4 book ai didi

java - extras.getString() 检索正​​确的值但分配 null

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

我有这个,让我们说“作业”(不知道如何翻译它,抱歉)为老师编写一个简单的应用程序,以便他们可以输入成绩和科目等。

我设置的 Activity 使用自定义适配器和 ListView 来显示学生姓名,每行的 和 处有 3 个按钮,供每个学生设置成绩。按钮为 3,因为学生有 3 次尝试通过的机会。按下按钮后, Activity 将显示(作为弹出窗口)以从键盘输入成绩并将其保存为按下的按钮的新文本。我还没有设法将该按钮文本设置为从该 Activity 传递的成绩,因为我无法在 onActivityResult 中检索该字符串。我暂停了:

String s = extras.getString(key)

为了检查我使用 putExtra() 设置的键找到了什么值,在我的应用程序执行到该步骤后,我看到:

s: null extras: Bundle[{key=4}]

就在我之前提到的那行代码之后,4 是我在 EditText 中键入以传递回第一个 Activity 的值。即使我看到正确的值从第二个 Activity 传递到第一个 Activity ,我也无法将其分配给我在 onActivityResult 中创建的新字符串。

简单来说,过程应该是这样的:在第一个 Activity 中,我单击自定义适配器创建的 ListView 的一行中的按钮以打开结果 Activity 。在第二个 Activity 中,我在 EditText 中写入一个数字,按下按钮后,我将其作为结果传递给 onActivityResult 返回到第一个 Activity 。我得到了正确的数字作为额外的数字,但在分配给新字符串后,该字符串保持为空。

我首先开始这样的 Activity :

Intent intent = new Intent(Activity1.this, Activity2.class);
startActivityForResult(intent, 1);

然后我从 EditText 传递额外的 onClick,如下所示:

EditText editText = findViewById(R.id.edit_text);

Intent intent = new Intent();
intent.putExtra("key", editText.getText());
setResult(RESULT_OK, intent);
finish();

然后我回到第一个 Activity 来执行此操作:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == 1){
if(resultCode == RESULT_OK){
Bundle extras = data.getExtras();
String s = extras.getString("key"); //1st Pasue
Log.e("onactivityresult string", (String) s); //2nd Pause

}
}
}

第一次暂停:

Bundle[mParcelledData.dataSize=40]

跨步,第二次暂停:

Bundle[{key=4}]
s = null

所以回到第一个 Activity ,在 onActivityResult 中,我想我可以看到第二个 Activity 中从 EditText 传递了正确的值,但在分配给新字符串后,它一直将其设置为 null。我不知道我是否提供了足够的信息,但如果需要更多信息,请询问,我会尽力为您提供更多信息。

编辑:这有效:

intent.putExtra("key", editText.getText().toString());

最佳答案

EditText.getText() 返回一个 Editable,而不是直接返回 String。使用

intent.putExtra("key", editText.getText().toString());

返回结果时。

关于java - extras.getString() 检索正​​确的值但分配 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57523021/

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