2011-11-18 378 views
7

我試圖得到一個特定的片段:ClassCastException異常與findFragmentById

RohwareFragmentMatlist fragment = (RohwareFragmentMatlist)getFragmentManager().findFragmentById(R.id.lagerfragment); 

但我得到一個錯誤,從日食此消息:

不能從片段轉換爲RohwareFragmentMatlist

活動項目開始於:

public class RohwareActionBar extends FragmentActivity {... 

的RohwareFragmentMatlist定義如下:

public class RohwareFragmentMatlist extends ListFragment 
     implements LoaderManager.LoaderCallbacks<Cursor>{... 

片段是這樣定義的:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="horizontal" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 

<fragment 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:name="de.ypssoft.RohwareFragmentMatlist" 
android:layout_weight="1" 
android:layout_width="0px" 
android:layout_height="match_parent" 
android:id="@+id/lagerfragment" 
android:layout_margin="5dip" 
android:layout_marginLeft="10dip" 
> 
</fragment> 
<FrameLayout 
android:id="@+id/details" 
android:layout_weight="3" 
android:layout_width="0px" 
android:layout_height="match_parent" 
android:background="?android:attr/detailsElementBackground" /> 

</LinearLayout> 

不它的工作獲得通過 「getFragmentById」 使用ListFragment片段?

回答

33

我找到了解決方案here。 由於我使用兼容性包V4我必須使用

RohwareFragmentMatlist片段=(RohwareFragmentMatlist)getSupportFragmentManager()findFragmentById(R.id.lagerfragment)。

代替

RohwareFragmentMatlist片段=(RohwareFragmentMatlist)getFragmentManager()findFragmentById(R.id.lagerfragment)。

+0

謝謝!我一直在爲此奮鬥一段時間,並準備開始一種全新的方法。這小小的消息讓我糾正了。 –