2

我有一个片段会引发一个活动,用户可以在其中插入一些细节。当用户终止填充数据时,活动关闭。然后显示上一个片段,我希望它被更新(使用用户在活动中提供的数据)。

如果它是一个活动,而不是片段,我可以使用它:

@Override
public void onResume(){
    super.onResume();
    recreate();
}

如何对片段做同样的事情?

4

2 回答 2

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
    }
}
于 2014-10-15T09:07:37.050 回答
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
        }
}
于 2014-10-15T08:41:11.913 回答