Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 删除操作栏上的额外图标(使用ShareActionProvider和ActionBarSherlock时)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我在我的项目中使用ActionBarSherlock,并想设置一个分享按钮在FB等上发布内容……我这样做了Adding items to action bar (using ActionBarSherlock)

您可能知道,ShareActionProvider添加了第二个图标,其中包含最常用的共享选项.这意味着我的操作栏中出现了另一个应用程序的图标,我想阻止这种行为……我已经看到了2个可能的解决方案,不幸的是两个都没有对我有用:/@H_403_3@

第一次尝试是在我的目标类中实现OnShareTargetSELEctedListener并覆盖onShareTargetSELEcted方法(如此处:ActionBarSherlock – Share Content icon issue).但额外的图标停留在那里……这是我的代码:@H_403_3@

@Override
public Boolean onCreateOptionsMenu(Menu menu)
{
    getSupportMenuInflater().inflate(R.menu.share,menu);
    mShareActionProvider = (ShareActionProvider) menu.findItem(R.id.sharE).getActionProvider();
    Intent intent = getDefaultShareIntent();
    mShareActionProvider.setOnShareTargetSELEctedListener(this);
    if(intent!=null)
        mShareActionProvider.setShareIntent(intent);
    return super.onCreateOptionsMenu(menu);
}

@Override
public Boolean onShareTargetSELEcted(ShareActionProvider source,Intent intent) {
    this.startActivity(intent);
    // started activity ourself to prevent search history
    return true;
}

第二次尝试是从ActionBarSherlock重写一些类,以防止它显示额外的图标(如此处:How to hide the share action (which use most) icon near the share action provider?).但是我遇到了这个解决方案的问题,因为我无法从我的自定义类中导入com.actionbarsherlock.widget.ActivityChooserModel(阻塞到外部包).即使将这个类复制到我的包中,也没有用(app崩溃)……@H_403_3@

看起来这是一个非常平常的事情来禁用这个额外的图标,但我无法弄清楚为什么上面的解决方案对我不起作用…@H_403_3@

提前感谢任何想法和sugestions@H_403_3@

解决方法

我不知道你是否解决你的问题但是我有同样的问题要删除ShareActionProvider的历史记录.我尝试了一切,我找到的答案与你一样( How to hide the share action icon?).
经过一些研究,我在第二条评论发现了这个伎俩:
Action Bar Sherlock has depreciated methods

>将ABS中的3个类(ShareActionProvider,ActivityChooserview和ActivityChooverModel)复制/粘贴到您的包中.
>用您自己的包替换您的导入.
>在新的ActivityChooserview中按if(false)更改行if(activityCount> 0&& historySize> 0).
(您将收到错误:“setActived”不适用于您当前的版本)
>保存并关闭课程.
>将您的项目中的类替换为android:actionProviderClass =“com.myapp.ShareActionProvider”
>在你的清单中,使minSdkVersion等于11.保存你的项目.打扫.
>返回你的Manifest,用你使用的旧版本替换你的minSdkVersion.保存并清洁.@H_403_3@

它完美地运作.如果此提示解决了您的问题,请告诉我.@H_403_3@

大佬总结

以上是大佬教程为你收集整理的android – 删除操作栏上的额外图标(使用ShareActionProvider和ActionBarSherlock时)全部内容,希望文章能够帮你解决android – 删除操作栏上的额外图标(使用ShareActionProvider和ActionBarSherlock时)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。