Luc*_*ota 5 android actionbarsherlock android-actionbar
我在我的项目中使用ActionBarSherlock,并且想要设置一个共享按钮以在FB等上发布内容......我通过这种方式实现了:将项添加到操作栏(使用ActionBarSherlock)
您可能知道,ShareActionProvider添加了第二个图标,其中包含最常用的共享选项.这意味着我的操作栏中出现了另一个应用程序的图标,我想阻止这种行为......我已经看到了2个可能的解决方案,不幸的是两个都没有对我有用:/
在我的目标类中,第一次尝试实现OnShareTargetSelectedListener并覆盖onShareTargetSelected方法(如此处:ActionBarSherlock - 共享内容图标问题).但额外的图标停留在那里......这是我的代码:
@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;
}
Run Code Online (Sandbox Code Playgroud)
第二次尝试是从ActionBarSherlock重写一些类,以防止它显示额外的图标(如下所示:如何隐藏共享操作提供程序附近的共享操作(最常用)图标?).但是我遇到了这个解决方案的问题,因为我无法从我的自定义类中导入com.actionbarsherlock.widget.ActivityChooserModel(阻塞到外部包).即使将这个类复制到我的包中,也没有用(app崩溃)......
看起来这是一个非常平常的事情来禁用这个额外的图标,但我无法弄清楚为什么上面的解决方案对我不起作用...
提前感谢任何想法和sugestions
我不知道你是否解决了你的问题,但我有同样的问题来删除ShareActionProvider. 我尝试了所有方法,我发现的接近答案与您相同(如何隐藏共享操作图标?)。
经过一番研究,我在第二条评论中发现了这个技巧:
Action Bar Sherlock has depreciatedmethods
ShareActionProvider、ActivityChooserView和)复制/粘贴到您的包中。ActivityChooverModelif (activityCount > 0 && historySize > 0)在新if (false)的ActivityChooserView. android:actionProviderClass="com.myapp.ShareActionProvider" Manifest,使minSdkVersion等于 11。保存您的项目。打扫。 Manifest,将您的替换minSdkVersion为您使用的旧的。保存并清洁。 它工作完美。请告诉我此提示是否解决了您的问题。
| 归档时间: |
|
| 查看次数: |
1708 次 |
| 最近记录: |