-1

我已經閱讀了很多鏈接,但都是將數據從一個片段傳遞到另一個活動或從一個活動傳遞到其他活動的片段,但是我想從片段的一個活動到另一個活動的其他片段如何從一個活動的片段發送一些數據到另一個活動的另一個片段

+1

好吧......如果你可以通過Fra分配給一個Activity,一個Activity分配給一個Fragment,那麼你可以通過Activity從一個Fragment傳遞到另一個Fragment,對吧? –

+0

是的,我可以做到這一點,但這是唯一的方法..我的意思是沒有任何其他直接[email protected]_007 – Ayaz

+0

你可以嘗試查看EventBus庫。就個人而言,還沒有嘗試過,但很多人推薦它 –

回答

0

除非我失去了一些東西,你可以從第一個Fragment調用getActivity().startActivity(),並在該Intent上設置一些extras,然後從第二個Activity中將一些參數傳遞到Fragment中創建。

所以,從FragmentA

Intent i = new Intent(getActivity(), ActivityB.class); 
i.setExtra("key", "hello world"); // for example 
getActivity().startActivity(i); 

然後,ActivityB

onCreate() { 
    Intent i = getIntent(); 
    FragmentB frag = new FragmentB(); 
    if (i!=null) frag.setArguments(i); // pass along intent 
    // TODO load Fragment 

而且使用在FragmentB

+0

是的這將有助於如果你能分享 – Ayaz

+0

好吧,我在手機上, t測試它,但應該類似於你在參考的例子中看到的代碼 –

0

如果你要通過DATAS各地的應用程序或可能遠遠活動之間/片段就像在你的例子中,考慮使用一些靜態類(即使在java中沒有靜態類,它更多的是一個靜態的字段包裝)。現在

public class MyRunTimeDatas{ 
    private static String myStringData; 
    private static int myIntData; 

    //getters and setters 
} 

,在fragment 1使用

MyRunTimeDatas.setMyStringData("my value"); 
MyRunTimeDatas.setMyIntData(69); 

終於在fragment 2現在就可以撥打

String myBeautifulString = MyRunTimeDatas.getMyStringData(); 
int myFantasticInt = MyRunTimeDatas.getMyIntData(); 

和你做

+0

據我所知,你共享的方法是在同一活動中將數據從一個片段傳輸到另一個片段......但在我的情況下,它是不同活動的片段@ Pier Giorgio Misley – Ayaz

+0

@Ayaz - 這是一個數據訪問對象。由於變量是靜態的,因此它們位於應用程序內存中,可以在任何類中訪問。 –

+0

@Ayaz這是cricket_007說:這是一個單獨的類(一個單獨的.java文件),所以它意味着你可以從任何類的應用程序訪問它 –

相關問題