0
我讀"Communicating with Other Fragments"爲什麼Fragment不直接實現其關聯的活動的方法,而不是使用接口?
它寫道:
要允許片段最多傳達到它的活動,您可以定義 片段中的類的接口和 活動中實現它。該片段在其 onAttach()生命週期方法捕獲接口實現,然後可以調用接口 方法,以便與活動通信。
我的問題是:
爲什麼不片段直接執行其相關活動的方法,而不是使用的界面? 將界面用作片段及其關聯活動之間的媒體有什麼優勢?例如,另一種通信方式可以是:在Fragment類中,在onListItemClick()中,我可以直接使用activity.onArticleSelected(position),而不是mCallback.onArticleSelected(position);
因爲Java不支持分部類,如C#一樣。 –
謝謝。我很抱歉我不瞭解部分課程。在我的理解,通信的另一替代可以是:在片段類,在onListItemClick(),I可直接使用activity.onArticleSelected(位置),而不是mCallback.onArticleSelected(位置); – user1914692
我也想知道這一點。我猜這是因爲Fragments被設計成模塊化的,可重用的組件。碎片與生命週期具有相似但不相同的生命週期。因爲它們可以被移除,該活動的生命週期過程中所取代,等在任何給定時間,它更有意義,然後再傳遞數據到活動與需要該數據的任何其它片段。不過希望我們可以對此有所瞭解。 –