本文介绍了从片段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和数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!