Отже, скажімо, у вас є Activity AB, яка контролює Frag A та Fragment B. Усередині Fragment A вам потрібен інтерфейс, який Activity AB може реалізувати. У зразку коду Android вони мають:
private Callbacks mCallbacks = sDummyCallbacks;
/ * Інтерфейс зворотного виклику, який повинні виконувати всі дії, що містять цей фрагмент. Цей механізм дозволяє повідомляти про діяльність щодо вибору товару. * /
public interface Callbacks {
public void onItemSelected(String id);
}
private static Callbacks sDummyCallbacks = new Callbacks() {
@Override
public void onItemSelected(String id) {
}
};
Інтерфейс зворотного виклику розміщений всередині одного з ваших фрагментів (скажімо, фрагмент A). Я думаю, що мета цього інтерфейсу Callbacks схожа на вкладений клас всередині Frag A, який може реалізувати будь-яка діяльність. Отже, якщо фрагмент A був телевізором, CallBacks - це пульт дистанційного керування телевізором (інтерфейс), який дозволяє використовувати фрагмент A Activity AB. Можливо, я помиляюся в деталях, тому що я нуб, але я отримав, щоб моя програма працювала ідеально на всіх розмірах екрану, і саме цим я користувався.
Отже, всередині Фрагменту А ми маємо: (Я взяв це із зразків програм Android)
@Override
public void onListItemClick(ListView listView, View view, int position, long id) {
super.onListItemClick(listView, view, position, id);
mCallbacks.onItemSelected(DummyContent.ITEMS.get(position).id);
}
А всередині Activity AB ми перевизначаємо метод onItemSelected:
public class AB extends FragmentActivity implements ItemListFragment.Callbacks {
@Override
public void onItemSelected(String id) {
Bundle arguments = new Bundle();
arguments.putString(“FragmentB_package”, id);
FragmentB fragment = new FragmentB();
fragment.setArguments(arguments);
getSupportFragmentManager().beginTransaction().replace(R.id.item_detail_container, fragment).commit();
}
Отже, всередині Activity AB ви в основному кидаєте все в Пачку та передаєте Б. Якщо Ви не знаєте, як користуватися Пачкою, знайдіть клас.
Я в основному переглядаю зразок коду, який надав Android. Той, що має речі DummyContent. Коли ви створюєте новий пакет програм для Android, це той, який називається MasterDetailFlow.