我似乎需要拨打startActivityForResult(intent, 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
吗?不确定任何帮助会很棒
由于
答案 0 :(得分:0)
是的,使用OnActivityResult
是一种方法。
您可以在调用者活动或调用者片段中覆盖它。如果您只想进行片段事务或与活动相关的任何其他工作,请覆盖您活动中的onActivityResult。另请注意,您应使用startActivityForResult
指定请求代码,以便您可以处理该请求代码的结果。
如果您只想更新片段中的数据或只是在那里处理数据,您也可以在片段中覆盖它。
编辑: 要将数据发送到新片段,您可以使用片段中的静态工厂来接收这样的新实例:
public static MyFragment newInstance(Bundle args){
MyFragment f = new MyFragment();
f.setArguments(args);
return f;
}
使用MyFragment.newInstance();
实例化您的片段
然后要使用这些参数,在您的示例onCreate
片段方法中,您可以使用getArguments()
方法访问您提供的包。