我正在尝试将来自SecondActivity的消息发送到FirstActivity进行打印。我使用startActivityForResult(intent,requestcode)来启动SecondActivity,然后输入文本并使用onActivityResult()发送要由FirstActivity显示的输入文本。当我运行Activity并单击send时,我收到错误,指出“println需要一条消息”。结果没有传递给FirstActivity。
以下是代码: FirstActivity:
private void StartSecondActivity() {
Log.i(tag, "SecondActivity");
Intent iSecond = new Intent(this, SecondActivity.class);
startActivityForResult(iSecond, REQUEST_CODE);
}
SecondActivity:
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();
}
此处记录正确的消息。
FirstActivity:
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
我不确定出了什么问题。有人可以说清楚。
感谢。
答案 0 :(得分:1)
您应该使用data
意图不 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);
}
}
}
答案 1 :(得分:1)
使用适当的内容初始化字符串m。
String m =“”;