我正在尝试将消息从 SecondActivity 发送到 FirstActivity 进行打印。我使用 startActivityForResult(intent, requestcode) 启动 SecondActivity,然后输入文本并使用 onActivityResult() 发送输入的文本以由 FirstActivity 显示。当我运行 Activity 并单击发送时,我收到错误消息,指出“println 需要一条消息”。结果没有传递到 FirstActivity。
下面是代码: 第一个 Activity :
private void StartSecondActivity() {
Log.i(tag, "SecondActivity");
Intent iSecond = new Intent(this, SecondActivity.class);
startActivityForResult(iSecond, REQUEST_CODE);
}
第二个 Activity :
private void eClicked() {
Log.i(tag, "Clicked()");
String mes = mEditText.getText().toString();
Intent intent = new Intent();
intent.putExtra(EXTRA_MESSAGE, mes);
setResult(RESULT_OK, intent);
Log.i(tag, mes);
finish();
}
这里它确实记录了正确的消息。
第一个 Activity :
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.i(tag, "onActivityResult()");
if(requestCode == REQUEST_CODE ){
if(resultCode == RESULT_OK){
Intent inte = getIntent();
String m = inte.getStringExtra(SecondActivity.EXTRA_MESSAGE);
mTextView.setText(m);
}
}
}
它进入 onActivityResult 并记录消息,然后崩溃并显示以下错误消息。
错误消息:
02-09 18:52:42.010: E/AndroidRuntime(1831): FATAL EXCEPTION: main
02-09 18:52:42.010: E/AndroidRuntime(1831): Process: droid.intentexp.intents, PID: 1831
02-09 18:52:42.010: E/AndroidRuntime(1831): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=Intent { (has extras) }} to activity {droid.intentexp.intents/droid.intentexp.intents.FirstActivity}: java.lang.NullPointerException: println needs a message
我不确定出了什么问题。有人可以解释一下吗?
谢谢。
最佳答案
您应该使用data
Intent 不getIntent()
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.i(tag, "onActivityResult()");
if (requestCode == REQUEST_CODE ) {
if (resultCode == RESULT_OK) {
String m = data.getStringExtra(SecondActivity.EXTRA_MESSAGE);
mTextView.setText(m);
}
}
}
关于java - println 需要一条消息 - onActivityResult,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21667159/