2014-02-27 28 views
-1

目前我的片段呼叫的片段方法打開一個新的對話片段B. Is there any way to call method from a fragment A method from a dialog fragment B?從片段

+0

你能通過一個轉介嗎?當你初始化它時,將片段A分割成片段B?然後通過Fragment B中的引用來調用它? –

+0

我怎樣才能通過參考方法 – srbyk1990

+0

傳遞整個片段,然後在Frag B調用'myReference.myMethod()'。 –

回答

1

關於android網站,你不應該調用另一個片段的片段,而應該讓活動來處理切換片段。

要做到這一點,

您可以創建一個接口,並在活動執行它,

public interface MyListener{ 
    public void switchFragment(Fragment f); 
} 

public class MyActivity extends Activity implements MyListener{ 

    @Override 
    public void switchFragement(Fragment f){ 
     getSupportFragmentManager().beginTransaction 
       .replace(R.id.container, f) 
       .commit(); 
    } 
} 

,並在片段類,

public class MyFragment extends Fragment{ 

    private MyListener listener; 

    @Override 
    public void onAttach(Activity activity) { 
     super.onAttach(activity); 
     try { 
      listener = (MyListener) activity; 
     } catch (ClassCastException e) { 
      throw new ClassCastException(activity.toString() 
        + " must implement MyListener"); 
     } 
    } 

    @Override 
    public void onDetach() { 
     super.onDetach(); 
     listener = null; 
    } 

} 

,並簡單地使用

listener.switchFragment(fragment); 
0

您需要的兩件事情之一:

  • 線在活動的每個片斷的引用
  • 使用企業服務總線(奧托是一個開放源代碼的選項)片段之間直接溝通

沒有辦法說話直接片斷T o標準框架中的片段。您必須手動創建此鏈接。

+0

如何將引用連接到我的活動中的每個片段 – srbyk1990