片段之间共享信息

问题描述 投票:0回答:1

我需要在片段之间共享信息。我知道我可以使用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 shared
1个回答
0
投票

在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")
© www.soinside.com 2019 - 2024. All rights reserved.