activity和fragment之间的数据传值思路

我只说一些简单传值用到的思路,具体实现不详细说明了。
我们都知道activity和acitivity之间的传递用intent来完成,下面看fragment和Activity之间的传值

全局获取值

把较常用的固定简单值放到preference中,这样就哪里都可以用了。

fragment从宿主activity中获取值

1) 当LoginActivity启动 MainActivity时,传来一个intent ,而MainAcitivity中包含两个fragment
如果fragment A想用这个intent则可以这样

 Bundle bundle = getActivity().getIntent().getExtras();
String receivedUserName = bundle.getString(EXTRA_CHINESE_USERNAME);

这种就适用于,当其他activity开启你的MainActivity时的情况,你的MainAcitivity中是包含多个fragment的。
2)当我想用fragment B 来使用MainActivity中的值,可以在fragment中设置一个变量,getter 和setter在MainActivity中setter这个变量,fragment B就可以使用这个变量了。
当然有一种方法在Activity中fragment.setArgument().然后再在fragment中getArgument();而这必须要在创建fragment之前操作,也就是说如果fragment存在状态,再次setArgument是会报错的。

fragment从其他activity获取值

其实我经过查阅资料发现,安卓的设计思路是activity和activity之间传值,所以可以先在activity之间传值然后再用fragment从activity中获取相应的值。

fragment传值给其他activity

直接放入intent中传过去就可以

你可能感兴趣的:(Android)