我有一个片段可以抛出一个用户可以插入一些细节的活动。 当用户终止填充数据时,活动关闭。然后显示前一个片段,我希望它更新(用户在活动中提供的数据)。
如果它是一个活动,而不是片段,我可以使用它:
@Override
public void onResume(){
super.onResume();
recreate();
}
如何对片段做同样的事情?
答案 0 :(得分:1)
您将覆盖此Fragment所属的Activity中的onResume,并在此Activity中重新创建(重新启动)此Fragment。例如
public class ActivityA extends Activity {
@Override
public void onResume() {
// here you can get the Fragment instance , so you can recreated this fragment here or invoke this fragment's function to set data or refresh data
}
}
答案 1 :(得分:0)
您可以在片段中调用startActivityForResult(Intent intent,int requestCode)方法时抛出一个Activity。
你还需要在你的片段中提供onActivityResult(int requestCode,int resultCode,Intent data),数据在Intent参数中。
public class YourFragment extends Fragment {
public void throwActivity() {
// start activity
Intent intent = new Intent();
intent.setClass(getActivity(), YourActivity.class);
int requestCode = 1;
startActivityForResult(intent,requestCode);
}
// callback
@Override
public void onActivityResult (int requestCode, int resultCode, Intent data) {
recreate();
}
public void recreate() {
// your refresh code
}
}
public class YourActivity extends Activity {
public void yourMethod() {
int resultCode = 2;
setResult(resultCode); // goback to your fragment with your data
}
}