gpt4 book ai didi

Android 支持库 v7,无法获取 ActionProvider

转载 作者:搜寻专家 更新时间:2023-11-01 08:53:24 26 4
gpt4 key购买 nike

我有这样的自定义 ActionProvider。

....
import android.support.v4.view.ActionProvider;

public class MyActionProvider extends ActionProvider {
....
}

在 menu.xml 中

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:yourapp="http://schemas.android.com/apk/res-auto" >
<item android:id="@+id/example_action_provider"
yourapp:showAsAction="ifRoom"
android:title="More"
android:icon="@drawable/abc_ic_menu_moreoverflow_normal_holo_light"
yourapp:actionProviderClass="com.example.MyActionProvider" />
</menu>

我正在尝试使用此代码获取 ActionProvider:

import android.support.v4.view.ActionProvider;

public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu, menu);
MenuItem menuItem = menu.findItem(R.id.example_action_provider);
Object hack = menuItem.getActionProvider();
ActionProvider actionProvider = (ActionProvider)hack;
super.onCreateOptionsMenu(menu, inflater);
}

menuItem.getActionProvider 返回 android.support.v7.internal.view.menu.MenuItemWrapperJB$ActionProviderWrapperJB 类型的对象。而且它不能转换为 android.support.v4.view.ActionProvider。由于 MyActionProvider 获得了一些点击事件,它需要告诉回 fragment 或 Activity 。如何处理这种情况?

最佳答案

你必须使用 MenuItemCompat.getActionProvider(MenuItem)检索 ActionProvider,如 Adding an Action Provider guide 上的示例所示.

关于Android 支持库 v7,无法获取 ActionProvider,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21071235/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com