Я использую ActionBarSherlock в моем проекте, и вы хотите установить кнопку Отправить, чтобы опубликовать информацию в FB и т.д. и т.п. ... Я добился того, что таким образом: Adding items to action bar (using ActionBarSherlock)Удалить дополнительный значок в ActionBar (при использовании 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 из своих пользовательских классов (заблокирован для внешних пакетов). Даже копирование этого класса в мой пакет, это не сработало (сбой приложений) ...
Похоже, что это обычная вещь, чтобы отключить эту дополнительную иконку, но я не мог понять, почему решения выше не " т работал со мной ...
заранее спасибо за любые идеи и sugestions
Ваше второе решение - это подход, который я бы рекомендовал. «Даже копируя этот класс в мой пакет, он не работал (сбой приложений)» - используйте LogCat для проверки трассировки стека Java, связанной с вашим сбоем. «Похоже, это довольно обычная вещь, чтобы отключить эту дополнительную иконку», - и ваше доказательство этого ... что именно? – CommonsWare