我使用ActionBarSherlock在我的項目,並要設置一個分享按鈕,在FB等等等等張貼的內容...我實現了這種方式:Adding items to action bar (using ActionBarSherlock)在動作條刪除多餘的圖標(使用ShareActionProvider和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。即使複製這個類到我的包,它沒有奏效(應用程序崩潰)...
看起來像一個非常平常的事情來禁用這個額外的圖標,但我不明白爲什麼上述解決方案didn' T努力我...
在此先感謝您的任何想法和sugestions
你的第二個解決方案是我推薦的方法。 「甚至將這個類複製到我的包中,它不起作用(應用程序崩潰)」 - 使用LogCat檢查與您的崩潰相關的Java堆棧跟蹤。 「看起來像是一個非常平常的事情,禁用這個額外的圖標」 - 你的證明是... ...究竟是什麼? – CommonsWare