我在论坛上搜索但找不到合适的答案。 我已经在下面列出了相关部分
ACTIVITY ONE
implicitActivationButton.setOnClickListener(new OnClickListener() {
// Call startImplicitActivation() when pressed
@Override
public void onClick(View v) {
Intent myIntent = new Intent(ActivityLoaderActivity.this,
ExplicitlyLoadedActivity.class);
startActivityForResult(myIntent, GET_TEXT_REQUEST_CODE);
}
});
稍微低一点
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.i(TAG, "Entered onActivityResult()");
String input=data.getStringExtra(TAG);
mUserTextView.setText(input);
}
这是用户输入一些数据后的活动2
String input=mEditText.getText().toString();
Intent i = new Intent(ExplicitlyLoadedActivity.this, ActivityLoaderActivity.class);
i.putExtra("TAG",input);
startActivity(i);
this.setResult(RESULT_OK);
finish();
除了屏幕上的文字没有更新外,根本没有任何错误消息。它应该
答案 0 :(得分:6)
在第二堂课中不需要开始活动:
您需要更改代码:
Intent i = new Intent(); // or // Intent i = getIntent()
i.putExtra("TAG",input);
setResult(RESULT_OK , i);
finish();
并取消,
setResult(RESULT_CANCELED, i);
finish();
答案 1 :(得分:2)
试试这个
String input=data.getStringExtra("TAG");
取代
String input=data.getStringExtra(TAG);
答案 2 :(得分:2)
在Activity2上,您将启动ExplicityLoadedActivity的新实例,而不是返回上一个实例。
您应该只设置结果,然后完成第二项活动。
以下是您可以尝试进行第二项活动的代码:
Intent returnIntent = new Intent();
returnIntent.putExtra("TAG",input);
setResult(RESULT_OK, returnIntent);
finish();
答案 3 :(得分:0)
尝试这样设置ExplicitlyLoadedActivity
String input=mEditText.getText().toString();
Intent i = new Intent();
i.putExtra("TAG",input);
this.setResult(RESULT_OK,i);
finish();
并在ActivityLoaderActivity
中访问该结果字符串,即
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.i(TAG, "Entered onActivityResult()");
String input=data.getStringExtra("TAG");
mUserTextView.setText(input);
}