在这方面有一些基本知识,要在多个Activities
之间传递数据,我创建了Parcelable
类。
我的两个Activities
结构与下图相似,
在onClick
的{{1}}事件监听器中,我有以下代码片段来传递button1
(其中selectedText的值为"标题文字"它显示在button1上方
selectedText
在 ParcelableClass _ParcelableClass = new ParcelableClass(selectedText);
Intent intent = new Intent(mContext,Editor.class);
intent.putExtra("_ParcelableClass",ParcelableClass);
startActivity(intent);
我可以ParcelableClass
和read
这些值中,以便write
可以分配给第二个活动中可用的selectedText
。< / p>
我的要求是在选择EditText
按钮时将编辑后的文本(new Header text
)传递给第一个活动,基于第一个活动中的Ok
也应该更改为&#34;新标题文字&#34;。
我是否需要在单击selectedText
按钮时创建新的Intent,如果是这样,它将为第一个活动创建一个新的包。所以我只需要根据第二个活动中编辑的文本单独更改标题值。
答案 0 :(得分:0)
您可以使用startActivityForResult(...)代替startActivity(...)
这是一个简单的例子:
Intent i = new Intent(this, SecondActivity.class);
startActivityForResult(i, 1);
然后从第二个活动开始,只需将要返回的数据设置为意图并将结果设置为:
Intent returnIntent = new Intent();
returnIntent.putExtra("result",result);
setResult(RESULT_OK,returnIntent);
finish();
最后,在您的第一个活动中,您需要覆盖onActivityResult(...)。 像这样:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1) {
if(resultCode == RESULT_OK){
String result = data.getStringExtra("result");
}
}
}