gpt4 book ai didi

android - 如何检测用户何时使用 ShareActionProvider 选择菜单项?

转载 作者:行者123 更新时间:2023-11-30 02:50:56 26 4
gpt4 key购买 nike

我的 Android 应用程序有一个小问题。我正在创建标准菜单(使用 onCreateOptionsMenu)。我的菜单元素之一是共享按钮。此共享元素使用 OnShareTargetSelectedListener 来拦截单击了哪个共享选项。

问题是——我需要知道用户是否单击了这个“共享”菜单项(不是共享子元素与所有共享选项,如“Facebook”、“蓝牙”、“电子邮件”等)。在 onMenuItemSelected 中,单击“共享”时没有调用。

有什么优雅的方法可以拦截这个“分享”菜单元素的点击事件吗?

最佳答案

好的,这是解决方案:添加新的监听器接口(interface) (ShareMenuListener.java):

public interface ShareMenuListener {
public void onMenuVisibilityChanged(boolean visible);

扩展 ShareActionProvider (CustomShareActionProvider.java)

public class CustomShareActionProvider extends ShareActionProvider {

private ShareMenuListener mListener;

public CustomShareActionProvider(Context context) {
super(context);
}

@Override
public void subUiVisibilityChanged(boolean isVisible) {
super.subUiVisibilityChanged(isVisible);
mListener.onMenuVisibilityChanged(isVisible);
}

public void setShareMenuListener(ShareMenuListener listener) {
mListener = listener;
}
}

然后在您的 Activity 或 fragment 中,使用 CustomShareActionProvider 而不是标准的 ShareActionProvider 并实现 ShareMenuListener 接口(interface)。实现 onMenuVisibilityChanged 方法以执行自定义操作:

@Override
public void onMenuVisibilityChanged(boolean visible) {
if(visible) {
// Do your custom action here
}
}

关于android - 如何检测用户何时使用 ShareActionProvider 选择菜单项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24187151/

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