2013-05-30 48 views
0

我有延伸ListFragment,從我想使用getSupportFramentManager()的另一個片段的片段。findFragment()找到我ListFragment即如何使用getSupportFragmentManger找到ListFragment

DetailFrag detailFrag = (DetailFrag) getSupportFragmentManager.findFragmentById(R.id.detail_frag) 

if (detailFrag != null){ 
    // do something with detailFrag... 
}else{ 
    DetailFrag newFrag = new DetailFrag(); 
    // .... 
} 

// DetailFrag類implenentation

public class DetailFrag extends ListFragment{ 
// ... 
} 

但是Eclipse顯示"cannot cast from Fragment to DetailFrag"

我注意到,getSupportFragmentManager.findFragmentById()方法保留一個錯誤甕一個片段,我怎麼能找到一個 「ListFragment」

感謝, 迦特

+0

ListFragment是從片段 – tyczj

回答

0

你錯過了 「()」

變化:

DetailFrag detailFrag = (DetailFrag) getSupportFragmentManager.findFragmentById(R.id.detail_frag) 

到:

DetailFrag detailFrag = (DetailFrag) getActivity().getSupportFragmentManager().findFragmentById(R.id.detail_frag) 

編輯:嘗試在getSupportFragmentManager()之前添加getActivity()

+0

派生的,實際上在我的代碼中包含「()」,我編輯了這個問題來反映這個問題,但這不是問題。 – gath

+0

@gath我編輯了我的答案 – TronicZomB

+0

與此代碼的活動是FragmentActivity類型,所以eclipse抱怨「getActivity()未定義此類型」... – gath