Обмен информацией между фрагментами - PullRequest
0 голосов
/ 23 марта 2020

Мне нужно делиться информацией между фрагментами. Я знаю, что могу использовать общие предпочтения, но думаю, что это не оптимизировано.

Это код родительского фрагмента:

@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 , Это не разрешено.

1 Ответ

0 голосов
/ 23 марта 2020

В Android вы передаете значения Фрагментам через связки.

Использование 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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...