我需要在片段之间共享信息。我知道我可以使用sharedpreferences,但是我认为这不是优化的。
这是父片段代码:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view= inflater.inflate(R.layout.fragment_blank, container, false);
....
FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction();
ft.replace(R.id.eventos_pager, new BlankFragment2());
ft.commit();
....
return view;
}
此片段调用BlankFragment2和BlankFragment1需要将信息发送到BlankFragment2
我可以通过BlankFragment2的构造函数将信息共享给BlankFragment2。不允许。
在Android中,您将值通过捆绑包传递给Fragments。
使用AndroidStudio File > New > Fragment > Fragment (Blank)
将生成类似这样的内容。
public class MTFragment extends Fragment {
private String mParam1;
public static MTFragment newInstance(String param1) {
MTFragment fragment = new MTFragment();
Bundle args = new Bundle();
args.putString("value", param1);
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
mParam1 = getArguments().getString("value");
}
}
}
实例化
MTFragment mFragment = MTFragment.newInstance("Hello")