升级到 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 Orientation
、Theme
等相关的属性
关于您将 fragment
更改为 FragmentActivity
的问题,您仍然可以使用 FragmentActivity
.
中的方法进行访问
例如:获取上下文 getActivity()
可以替换为 FragmentActivityName.this
。
您可以阅读更多相关信息 here。
希望这对您有所帮助。
谢谢。
我正在升级我的旧项目以使用最新的 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 Orientation
、Theme
等相关的属性
关于您将 fragment
更改为 FragmentActivity
的问题,您仍然可以使用 FragmentActivity
.
例如:获取上下文 getActivity()
可以替换为 FragmentActivityName.this
。
您可以阅读更多相关信息 here。
希望这对您有所帮助。 谢谢。