升级到 API 28/Android X 后,Fragment 和 BindingFragmentActivity 不可分配给 'android.app.Activity'

Fragment and BindingFragmentActivity is not assignable to 'android.app.Activity' after upgrading to API 28/Android X

我正在升级我的旧项目以使用最新的 android apis、gradle build 等...我正在 运行 解决这个问题与我的 Android 清单。

我有一些活动设置如下:

<activity
            android:name="com.company.name.ui.ColorPickerActivity"
            android:label="@string/title_activity_add_photo_library"
         android:parentActivityName="com.compant.name.ui.CaptureMenuFragment"
            android:screenOrientation="portrait"
            android:theme="@style/FullscreenTheme">
            <meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value="com.company.name.ui.CaptureMenuFragment" />
        </activity>

我收到一条错误消息:

Fragment  is not assignable to 'android.app.Activity'

参考上面的android:parentActivityName。它应该是什么?它在以前的目标 api 设置中工作。

我查看了一些 SO 帖子,他们提到将 Fragment 更改为 FragmentActivity 但这会导致其他构建问题,例如我无法在我的意图实例中使用“getActivity()”方法。

例如:Intent intent = new Intent(getActivity(), SearchProductActivity.class);

有更好的解决办法吗?

谢谢!

编辑:

即使关于 BindingFragmentActivity,在我的清单中它也说:

com.company.name.ui.ColorActivity' is not assignable to 'android.app.Activity'

在我升级​​到 API 28 和 Android X 之后。我清单中的这段代码有什么问题:

<activity
            android:name="com.company.name.ui.ColorActivity"
            android:label="@string/title_activity_color"
            android:parentActivityName="com.company.name.ui.ColorsActivity"
            android:screenOrientation="portrait"
            android:theme="@style/Theme.AppCompat.NoActionBar">
            <meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value="com.company.name.ui.ColorsActivity" />
        </activity>

无需在 Android Manifest 文件中声明您的片段。片段是 reusable UI component,可以附加到任何 activity。

片段从其父片段 Activity.

获取与 Screen OrientationTheme 等相关的属性

关于您将 fragment 更改为 FragmentActivity 的问题,您仍然可以使用 FragmentActivity.

中的方法进行访问

例如:获取上下文 getActivity() 可以替换为 FragmentActivityName.this

您可以阅读更多相关信息 here

希望这对您有所帮助。 谢谢。