通过strartActivityforResult()将数据从片段传递给活动

时间:2016-06-14 17:24:01

标签: java android

我的应用程序显示活动。当用户按下按钮时,应用程序将转到片段 - 其中的7个片段 - 用户将按下其中一个片段中的按钮。之后,应用程序将字符串和整数值传递给活动。该应用程序将打开活动。 我尝试通过startActivityforResult()从Activity转到片段,它工作。然后我尝试将数据从片段发送到活动,应用程序停止。

活动

       Intent a =new Intent("android.intent.action.DEFAULT");
                startActivityForResult(a,1);

  }

  @Override
   protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    if (requestCode ==1)
    {

        newnamem =data.getExtras().getString("name");
        newcm=data.getExtras().getInt("calory");
        return;

    }
   }

片段

   Intent a = new Intent(getActivity(),main.class);
            a.putExtra("calory", Content.Mil001.calory);
            a.putExtra("name", Content.Mil001.meal);
            getActivity().fnish();

1 个答案:

答案 0 :(得分:0)

我使用了三种方法。

  • 实现接口 - 使用getter和setter方法创建接口(回调方法)。在您的活动中实现接口并调用这些方法。
  • 使用公共方法 - 在您的活动中,创建公共getter和setter方法。

    示例:getActivity()。getCalory(),getActivity()。setCalory(args)

  • 使用EventBus https://github.com/greenrobot/EventBus