从片段 A -> 片段 B -> 片段 C 传输数据。当用户单击后退按钮时,我想 return 片段 A 和数据
transfer data from fragment A -> fragment B - > fragment C. When user click Back button, I want to return to fragment A and data
我是 android 开发人员的新手。我有一个关于 3 个片段传输的问题。
我有 3 个片段 (A - B - C)。我想从 A -> B -> C 传输数据。
在每个片段中,数据都被更改了。
当用户点击 BACK BUTTON 时,用户想要 return A 更新数据。
如何使用更新数据 return 分片 A?
谢谢
使用接口实现。在 fragment 和 activity 中实现接口,因为这是通过 activity 在 fragment 之间进行通信的好方法。然后通过接口发送数据并从中提取数据。
您可以使用接口 class 在片段之间进行通信,但必须确保所有片段都处于活动状态。
您可以使用 SharedPreferences,您可以在其中保存数据并在任何您喜欢的地方检索它
这里是一个如何实现通信的示例想法。
// 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();
}
我是 android 开发人员的新手。我有一个关于 3 个片段传输的问题。
我有 3 个片段 (A - B - C)。我想从 A -> B -> C 传输数据。
在每个片段中,数据都被更改了。
当用户点击 BACK BUTTON 时,用户想要 return A 更新数据。
如何使用更新数据 return 分片 A?
谢谢
使用接口实现。在 fragment 和 activity 中实现接口,因为这是通过 activity 在 fragment 之间进行通信的好方法。然后通过接口发送数据并从中提取数据。
您可以使用接口 class 在片段之间进行通信,但必须确保所有片段都处于活动状态。
您可以使用 SharedPreferences,您可以在其中保存数据并在任何您喜欢的地方检索它
这里是一个如何实现通信的示例想法。
// 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();
}