Intereting Posts

Связь между фрагментами

У меня есть поток Master-Detail по умолчанию, который был создан автоматически при создании нового проекта. Мой вопрос. Когда я добавляю кнопку для детализации. Есть ли способ обновить мою сторону списка, нажав эту кнопку? Другими словами, могут ли ItemDetailFragment и ItemListFragment обмениваться данными?

Да, просто общайтесь с деятельностью слушателя.

Ваша деятельность:

public class MyActivity extends FragmentActivity implements OnFragmentClickListener { @Override public void OnFragmentClick(int action, Object object) { switch(action) { } } } 

Класс слушателя:

  public interface OnFragmentClickListener { public void OnFragmentClick(int action, Object object); } 

Затем ваши фрагменты будут иметь место где-то в коде, чтобы реализовать интерфейс:

  @Override public void onAttach(Activity activity) { super.onAttach(activity); try { mListener = (OnFragmentClickListener) activity; } catch (ClassCastException e) { throw new ClassCastException(activity.toString() + " must implement listeners!"); } } 

Затем ваши фрагменты общаются друг с другом следующим образом: fragmentA -> activity -> fragmentB. Ваша деятельность может вызывать методы непосредственно на фрагменты, не беспокоясь о проблемах синхронизации.

Пример вызова из фрагмента a:

 mListener.OnFragmentClick(GLOBAL_ACTION_KEY someObject); 

Затем обрабатывается операция:

 public class MyActivity extends FragmentActivity implements OnFragmentClickListener { @Override public void OnFragmentClick(int action, Object object) { switch(action) { case GLOBAL_ACTION_KEY: // you call fragmentB.someMethod(); break; } } }