FragmentActivity:无法从Fragment转换为派生类

Igo*_*sky 34 android casting android-fragments

我试图在FragmentActivity中使用Fragment,如下所示:

TutViewerFragment viewer = (TutViewerFragment)    
getSupportFragmentManager().findFragmentById(R.id.tutview_fragment);
Run Code Online (Sandbox Code Playgroud)

而我的TutViewerFragment延伸Fragment.但是我收到一个错误:

无法从Fragment转换为TutViewerFragment.

我真的不明白为什么会这样.为什么不能演员呢?

dev*_*ole 79

您正在扩展错误的Fragment类.导入android.support.v4.app.Fragment而不是android.app.Fragment.

  • 或者调用`getFragmentManager`而不是`getSupportFragmentManager`. (19认同)

Igo*_*sky 7

正如上面评论中指出的devconsole:扩展Fragment的类需要导入

android.support.v4.app.Fragment;
Run Code Online (Sandbox Code Playgroud)

并不是

android.app.Fragment;
Run Code Online (Sandbox Code Playgroud)

我想这与Android兼容包有关.问题现在解决了!


MFA*_*FAL 5

以防万一人们正在寻找 kotlin 等效项:

myFragmentClass = supportFragmentManager.findFragmentById(R.id.my_fragment) as MyFindOfFragment
Run Code Online (Sandbox Code Playgroud)