activityResult上的Android片段 编辑

activityResult上的Android片段 编辑,android,android-intent,android-fragments,onactivityresult,Android,Android Intent,Android Fragments,Onactivityresult,似乎我需要调用StartActivityForresultint,requestcode 在我的主要家长活动中,我会这样做吗: public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); getActivity(); if(requestCode == 1 && resultCo

似乎我需要调用StartActivityForresultint,requestcode

在我的主要家长活动中,我会这样做吗:

public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
getActivity();
if(requestCode == 1 && resultCode == Activity.RESULT_OK) {
   //some code
}
然后像这样开始我的意图?还是不确定

    Intent intent = new Intent(getActivity(), DietActivity.class);

    Bundle bundle = ActivityOptions.makeCustomAnimation(getActivity(), R.anim.left_slide_in, R.anim.left_slide_out).toBundle();
    intent.putExtra("id", dietid);
    intent.putExtra("duration", diet_duration);
    intent.putExtra("weightlost", total_weight_loss);
    intent.putExtra("followers", followers);
    intent.putExtra("rating", rating);
    intent.putExtra("dietname", dietname);
    intent.putExtra("dietdescription", dietdescription);
    intent.putExtra("dietcategory", dietcategory);

    startActivityForResult(intent, bundle, 1);
古老的 我有一个主活动,它启动一个片段,然后这个片段启动另一个临时活动,它使用下面的代码显示一些信息:

    Intent intent = new Intent(getActivity(), DietActivity.class);

    Bundle bundle = ActivityOptions.makeCustomAnimation(getActivity(), R.anim.left_slide_in, R.anim.left_slide_out).toBundle();
    intent.putExtra("id", dietid);
    intent.putExtra("duration", diet_duration);
    intent.putExtra("weightlost", total_weight_loss);
    intent.putExtra("followers", followers);
    intent.putExtra("rating", rating);
    intent.putExtra("dietname", dietname);
    intent.putExtra("dietdescription", dietdescription);
    intent.putExtra("dietcategory", dietcategory);

    getActivity().startActivity(intent, bundle);
当我调用这个新活动的finish时,会显示以前可见的相同片段,我想在启动的活动完成时将这个片段更改为另一个片段,但我想在新片段上显示一些额外的信息,我是否在这里使用onActivityResutls?我不知道有没有什么帮助

谢谢

是的,使用OnActivityResult是一种方式。 您可以在调用方活动或调用方片段中重写它。如果您只想执行片段事务或与活动相关的任何其他工作,请在活动中重写onActivityResult。还请注意,您应该使用startActivityForResult指定请求代码,以便处理该请求代码的结果

如果您只想更新片段中的数据,或者只是在片段中处理数据,您还可以在片段中重写它

编辑: 要将数据发送到新片段,可以在片段中使用静态工厂来接收新实例,如下所示:

public static MyFragment newInstance(Bundle args){
    MyFragment f = new MyFragment();
    f.setArguments(args);
    return f;
}
使用MyFragment.newInstance实例化片段;
然后要使用这些参数,在片段的示例onCreate方法中,您可以使用getArguments方法访问提供的捆绑包。

是否要在DietActivity中获取数据?您好,我已经在DietActivity类中获取了数据,该类仅显示信息,现在关于饮食活动在使用查看了信息并在活动中调用了Finish之后,我想替换称为intent的片段,这实际上是另一个主要类的一部分嗨,我想你在这里,我已经编辑了我的问题,所以我使用startActivityForResults开始这个新活动,然后,当结果在活动结束时发送回来时,我想替换片段,但仍然向新片段传递一些信息,这是否可行?是的,绝对可以。对片段使用静态生成器,并以捆绑方式或使用参数向其传递数据。