- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这个,让我们说“作业”(不知道如何翻译它,抱歉)为老师编写一个简单的应用程序,以便他们可以输入成绩和科目等。
我设置的 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/
我是一名优秀的程序员,十分优秀!