2014-02-17 50 views
1

我有一個DialogPreference,我試圖獲取添加到它的片段(Google Maps,如果有人關心)。該片段在XML代碼中有一個id標記,我通過setDialogLayoutResource()設置對話框。然而,我很努力地得到一個片段的引用(所以我可以設置一些設置,並從中獲取數據)。在用戶可以開始播放數據之前,我需要獲取它的參考。從DialogPreference獲取片段?

我試過到目前爲止是這樣的:

@Override 
protected void onBindDialogView(View view) { 
    ((Fragment) getDialog() 
      .getOwnerActivity() 
      .getFragmentManager() 
      .findFragmentById(R.id.map)); 
} 

這不起作用,因爲getDialog在生命週期的這個點,則返回null。如果有更好的方法來引用活動或FragmentManager,我很樂意看到它。謝謝您的幫助!

回答

2

我設法通過將上下文作爲一個活動來實現它。

((Activity) getContext()).getFragmentManager().findFragmentById(R.id.map));