如何在android

时间:2015-08-10 07:33:07

标签: android android-intent android-activity

在这方面有一些基本知识,要在多个Activities之间传递数据,我创建了Parcelable类。

我的两个Activities结构与下图相似,

enter image description here

onClick的{​​{1}}事件监听器中,我有以下代码片段来传递button1(其中selectedText的值为"标题文字"它显示在button1上方

selectedText

ParcelableClass _ParcelableClass = new ParcelableClass(selectedText); Intent intent = new Intent(mContext,Editor.class); intent.putExtra("_ParcelableClass",ParcelableClass); startActivity(intent); 我可以ParcelableClassread这些值中,以便write可以分配给第二个活动中可用的selectedText。< / p>

我的要求是在选择EditText按钮时将编辑后的文本(new Header text)传递给第一个活动,基于第一个活动中的Ok也应该更改为&#34;新标题文字&#34;。

我是否需要在单击selectedText按钮时创建新的Intent,如果是这样,它将为第一个活动创建一个新的包。所以我只需要根据第二个活动中编辑的文本单独更改标题值。

1 个答案:

答案 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");
        }
    }
}