簡體   English   中英

如何通過一項活動和許多片段來管理Android應用程序?

[英]How to manage android app with one activity and many fragments?

我需要一些幫助來管理一個活動和許多片段的android應用程序。 我之所以選擇這種模式,是因為我認為它可以使應用程序更快,更高效(至少我從對片段的閱讀中發現了這一點),但我堅持自己的第一步。

事實是:

  • 我有一個主要的活動,該活動管理一個工具欄和一個導航抽屜(向左滑動菜單),它是一個片段,並具有一個FrameLayout(在活動的xml中)以包含各個片段
  • 導航抽屜的每個聲音都應打開一個新片段
  • 這些片段應該彼此共享數據(所以活動是橋梁,對嗎?)

現在:如果要在片段之間交換數據,我應該使用活動作為橋梁,實現一個接口以使片段活動相互通信,活動如何實現一個以上的接口與片段上的更多內容進行通信和交換數據?

IE瀏覽器:

假設我有一個HomeFragment ,它是應用程序的主視圖。 在此片段中,我有一個RecyclerView來處理項目列表。

如果單擊列表中的一項,則應打開一個新片段(全屏尺寸,以便新片段完全替換HomeFragment),其中顯示了有關所單擊項目的一些詳細信息。

我無法執行此操作,因為我的活動已經實現了NavigationDrawer的接口,那么如何在片段和活動之間交換數據?

PS:對不起,我的英語不好,我希望我已經清楚了

一個活動可以實現它喜歡的片段,例如:

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);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM