我想返回片段A和数据

我想返回片段A和数据

本文介绍了从片段A传输数据->片段B->片段C.当用户单击“后退"按钮时,我想返回片段A和数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是android开发人员中的新手.我对3个片段的传输有疑问.

I'm a newbie in android developer. I have a question about transfer with 3 fragments.

我有3个片段(A-B-C).我想从A-> B-> C传输数据.
在每个片段中,数据均已更改.当用户单击BACK BUTTON时,用户希望返回A并带有更新的数据.如何返回带有更新数据的片段A?谢谢.

I have 3 fragments (A - B - C). I want o transfer data from A -> B -> C.
In each the fragment, data was been changed.When user click BACK BUTTON, user want to return A with the updated data.How to return fragment A with the update data?Thanks.

推荐答案

以下是实现交流的示例示例.

Here is a sample idea how to achieve communication.

 // activity classs
 public class SampleActivity extends Activity implements    OnFragmentChangeListener {
 OnBackPressListener  dataFragment;
 public void onCreate(bundle){

      android.app.FragmentManager fragmentManager=getFragmentManager();

    android.app.FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();

    dataFragment = new DataFragment();
    fragmentTransaction.add(R.id.audio_permission_button,dataFragment);
    fragmentTransaction.commit()
 }
  @override
  public void OnFragmentChange(Bundle bundle){
  //here you go.
  // write code to load new fragment with same idea. now you have bundle do what you want.

}
@Override
public void onBackPressed() {
 // you can call this method from any click event, This just an sample idea.
 dataFragment.OnActivityBackPress();
}

}
 // interface to communicate with fragment
 public interface OnFragmentChangeListener {
     public void OnFragmentChange()
 }
 // fragment class
public class DataFragment extends Fragment implements OnBackPressListener {

 OnFragmentChangeListener onFragmentChangeListener;


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
 onFragmentChangeListener=(OnFragmentChangeListener) getActivity();


}

    @Override
public void OnActivityBackPress() {
 // pass you data to activity for loading new fragment or to refresh data.
 Bundle bundle= new Bundle();

 onFragmentChangeListener.OnFragmentChange(bundle);



}
}

// interface behave like mediator
public interface OnBackPressListener {

public void OnActivtiyBackPress();
}

这篇关于从片段A传输数据->片段B->片段C.当用户单击“后退"按钮时,我想返回片段A和数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-04 22:01