gpt4 book ai didi

android - 删除操作栏上的额外图标(使用 ShareActionProvider 和 ActionBarSherlock 时)

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:56:30 27 4
gpt4 key购买 nike

我在我的项目中使用 ActionBarSherlock,并希望设置一个共享按钮以在 FB 等处发布内容...我是这样实现的:Adding items to action bar (using ActionBarSherlock)

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

第一次尝试是在我的目标类中实现 OnShareTargetSelectedListener 并覆盖 onShareTargetSelected 方法(如此处:ActionBarSherlock - Share Content icon issue)。但是额外的图标留在那里...这是我的代码:

@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。即使将此类复制到我的包中,也没有用(应用程序崩溃)...

看起来禁用这个额外的图标是一件很平常的事情,但我不明白为什么上面的解决方案对我不起作用......

提前感谢您的任何想法和建议

最佳答案

我不知道您是否解决了您的问题,但我在删除 ShareActionProvider 的历史记录时遇到了同样的问题。我尝试了一切,我发现的接近答案与您相同 ( How to hide the share action icon? )。
经过一些研究,我在第二条评论中发现了这个技巧:
Action Bar Sherlock has depreciated methods

  1. 将 ABS 中的 3 个类(ShareActionProviderActivityChooserViewActivityChooverModel)复制/粘贴到您的包中。
  2. 用您自己的包替换您的导入。
  3. 在新的 ActivityChooserView 中将 if (activityCount > 0 && historySize > 0) 行更改为 if (false)
    (你会得到一个错误:“setActived”不适用于你当前的版本)
  4. 保存并关闭类(class)。
  5. 将 menu.xml 中的类替换为 android:actionProviderClass="com.myapp.ShareActionProvider"
  6. 在您的Manifest 中,使minSdkVersion 等于11。保存您的项目。打扫。
  7. 返回您的Manifest,将您的minSdkVersion 替换为您使用的旧版本。保存并清理。

它工作得很好。如果此提示解决了您的问题,请告诉我。

关于android - 删除操作栏上的额外图标(使用 ShareActionProvider 和 ActionBarSherlock 时),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19037903/

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