在片段之间共享信息

Share information between fragments

我需要在片段之间共享信息。我知道我可以使用 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");

FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction();              
ft.replace(R.id.eventos_pager, mFragment);                       
ft.commit();