【发布时间】:2016-09-11 02:50:37
【问题描述】:
将数据(例如字符串)从片段一个传递到最后一个片段的简单方法,我的意思是,如何(保存,设置或放置)数据,以及(显示,获取)在最后一个片段中,我使用参数来传递片段 1 到片段 2,但我不知道如何传递到最后一个片段。
【问题讨论】:
标签: android
将数据(例如字符串)从片段一个传递到最后一个片段的简单方法,我的意思是,如何(保存,设置或放置)数据,以及(显示,获取)在最后一个片段中,我使用参数来传递片段 1 到片段 2,但我不知道如何传递到最后一个片段。
【问题讨论】:
标签: android
您可以通过 Bundle 传递值。
例如:
Fragment fragment = new YourFragment();
Bundle args = new Bundle();
args.putString(ARG_PARAM1, param1);
args.putString(ARG_PARAM2, param2);
fragment.setArguments(args);
FragmentManager manager = activity.getSupportFragmentManager();
FragmentTransaction ft = manager.beginTransaction();
ft.addToBackStack(null);
ft.add(R.id.container_layout, fragment);
ft.commit();
如果您不想添加或替换片段。 (如果您的片段已经打开)那么您可以在该片段中创建接口并在您的 BaseActivity 上实现接口。
【讨论】:
传值
Fragment fragment = new YourFragment();
FragmentManager manager = activity.getSupportFragmentManager();
FragmentTransaction ft = manager.beginTransaction();
Bundle args = new Bundle();
args.putString(ARG_PARAM1, param1);
args.putString(ARG_PARAM2, param2);
fragment.setArguments(args);
ft.addToBackStack(null);
ft.replace(R.id.container_layout, fragment).commit();
获取价值
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
yourvalue1 = getArguments().getString("ARG_PARAM1");
yourvalue2 = getArguments().getString("ARG_PARAM2");
final View view = inflater.inflate(R.layout.yourlayout, container, false);
retrun view;
}
【讨论】:
您可以按照另一个答案的建议,按照documentation here 建议的通信模式,使用 Bundle 将数据从任何片段传递到任何片段。
或者您可以制作单例并从中访问变量,请参阅我的answer here 已经问了好几次了,直接问之前请先搜索一下。
【讨论】: