回复
Android如何优雅地向Fragment传递参数
柳随风
发布于 2020-9-24 14:09
浏览
0收藏
前言
很多人提到向Fragment传递参数会下意识想到重写Fragment的构造方法并传入自己的参数。事实上,这种方式时极不科学和极不安全的,因为Android在很多场景下都会出现Fragment的重建情况(比如横竖屏的切换),但是重建的时候系统并不会使用你编写的Fragment的构造方法而是调用Fragment默认的构造方法,这个时候你传的参数将会消失导致各种异常。那么如何更安全地向Fragment传递参数呢,这里建议大家使用Google官方推荐的setArguments方法:
使用
初始化Fragment实例并setArguments
DiscoverFragment discoverFragment = new DiscoverFragment();
Bundle bundle = new Bundle();
bundle.putString("email", email);
discoverFragment.setArguments(bundle);
在Fragment中拿到Arguments:
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_discover, null);
Bundle bundle = getArguments();
//这里就拿到了之前传递的参数
email = bundle.getString("email");
return view;
}
作者:ai-exception
来源:CSDN
分类
赞
收藏
回复
相关推荐