2015-09-11 5 views
0

Мне нужна помощь в том, как управлять приложением Android с одним действием и многими фрагментами. I выбор этого шаблона, потому что я думаю, что это может сделать приложение более быстрым и эффективным (по крайней мере, я понял это из моих чтений на фрагментах), но я застрял на первых шагах.Как управлять Android-приложениями с одним действием и многими фрагментами?

Факты таковы:

  • У меня есть один основной вид деятельности, который управляет панель инструментов и панель навигации (слева слайд меню), фрагмент и имеет FrameLayout (в XML Activity), чтобы содержать различные фрагменты
  • каждый голос навигационной панели должен открыть новый фрагмент
  • фрагменты должны совместно использовать данные друг от друга (поэтому активность является мостом, верно?)

Нет w: Если обмениваться данными между фрагментами, я должен использовать эту активность в качестве моста, реализуя интерфейс, позволяющий взаимодействию фрагментов взаимодействовать друг с другом, как активность может реализовать более один интерфейс для обмена данными и обмена данными с большим количеством данных на фрагменте?

т.е .:

Давайте предположим, что у меня есть HomeFragment что является основным видом приложения. В этом фрагменте у меня есть RecyclerView, который обрабатывает список элементов.

Если я нажму на один элемент списка, я должен открыть новый фрагмент (полноэкранный размер, чтобы новый фрагмент полностью заменил HomeFragment), который показывает некоторые сведения об элементе, который был нажат.

Я не могу этого сделать, потому что моя активность уже реализует интерфейс для navigationDrawer, так как я могу обмениваться данными между фрагментом и активностью?

PS: Извините за мой плохой английский, я надеюсь, что я ясно

ответ

1

Деятельность может реализовать столько, сколько фрагментов, которые он любит, например:

public class MyActivity extends FragmentActivity implements 
    AppleFragment.OnAppleInteractionListener, 
    OrangeFragment.OnOrangeInteractionListener {  

    @Override 
    public void onAppleInteraction(int quantity_sold) { 
    } 

    @Override 
    public void onOrangeInteraction(int quantity_sold) { 
    } 
} 

Выше кода показывают, как легко у вас может быть одно действие для реализации двух фрагментов.

В отдельном файле необходимо определить фрагменты, как это:

public class AppleFragment extends Fragment { 
    public interface OnAppleInteractionListener { 
    void onAppleInteraction(int quantity_sold); 
    } 
} 

и

public class OrangeFragment extends Fragment { 
    public interface OnOrangeInteractionListener { 
    void onOrangeInteraction(int quantity_sold); 
    } 
} 
+0

, но ... я думал, что Java только позволяют реализовать один интерфейс Öö я извиняюсь, я «Мне очень плохо об этом известно. Спасибо за ваш ответ! – mTsyS

+0

добро пожаловать, вы также можете проголосовать за мой ответ. – Ehsan

Смежные вопросы