在我的xml中,我有以下代码:
<fragment android:name="somepackage.Fragments.ToolbarFragment"
android:id="@+id/toolbar_fragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
在我的代码中我有:
private ToolbarFragment toolbarFragment;
toolbarFragment = (ToolbarFragment) findViewById(R.id.toolbar_fragment);
我收到错误:“无法将android.view.View强制转换为somepackage.Fragments.ToolbarFragment”
为什么android将片段视为通用视图类型而不是我指定的片段类?
答案 0 :(得分:13)
您正在呼叫findViewById()
。这是为了找到View
,例如小部件。
如果您想找到片段,请拨打findFragmentById()
上的FragmentManager
,通过调用getFragmentManager()
(原生片段)或{{1}来获取在您的活动中(getSupportFragmentManager()
或support-v4
的片段后退)。
答案 1 :(得分:3)
试试这种方式
somepackage.Fragments.ToolbarFragment toolbarFragment = (somepackage.Fragments.ToolbarFragment) findFragmentById(R.id.toolbar_fragment);