将数据从活动发送到活动类,并在它们之间分段

时间:2016-06-11 17:31:53

标签: android

我的应用程序显示活动(1)。当您按下按钮时,应用程序打开片段。之后,片段将数据发送到活动(2)并打开活动(2) - 效果很好。最后,活动(2)编辑数据并将其发送到活动(1) - 这是问题 - 。

我尝试了很多方法,但它没有工作

3 个答案:

答案 0 :(得分:2)

当您使用复杂的屏幕(如多个片段和活动)时,我建议您只使用事件驱动的库,例如:

它会让你改变这个:

No EventBus

进入这个:

With EventBus

检查this post以获取有关这些库的用例的详细说明。

答案 1 :(得分:0)

可能是这样的;

片段:

Intent i = new Intent(getContext(), Activity2.class);
i.putExtra("data", data);
getActivity().startActivityForResult(i, REQUEST_CODE);

在活动(2)中:

Intent resultIntent = new Intent();
resultIntent.putExtra("data", data);
setResult(Activity.RESULT_OK, resultIntent);
finish();

在活动(1)中:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
     if (requestCode == REQUEST_CODE) {
     // Make sure the request was successful
         if (resultCode == Acitivity.RESULT_OK) {
             String stringData = data.getExtras().getString("data"); 
             // Data can be string, int etc. or serializable
             // YourObject object = (YourObject) data.getExtras().getSerializable("data");
        }
    }
}

答案 2 :(得分:0)

我还没有足够的声誉发表评论。

无论如何,你实际上要做的是从Activity2返回一个结果。这个答案解释了如何做到这一点:https://stackoverflow.com/a/10407371/3389196

这在应用程序之间发生了很多。例如。调用相机活动,为您提供照片。但这也可以在您自己的应用程序中的活动之间完成。

更多信息:

https://developer.android.com/training/basics/intents/result.html#StartActivity https://developer.android.com/training/basics/intents/filters.html#ReturnResult