Resme bakın. Pinterest'e paylaşım anlamına gelen "P" ikonunu nasıl gizleyebilirim?Paylaşma eylemi sağlayıcısı yakınındaki paylaşma eylemi (en çok kullanılan) simgesi nasıl gizlenir?
Her ikisi eylem çubuğunda ve ben ActionBarSherlock kullanın.
Resme bakın. Pinterest'e paylaşım anlamına gelen "P" ikonunu nasıl gizleyebilirim?Paylaşma eylemi sağlayıcısı yakınındaki paylaşma eylemi (en çok kullanılan) simgesi nasıl gizlenir?
Her ikisi eylem çubuğunda ve ben ActionBarSherlock kullanın.
'a erişmek isterseniz, tüm paylaşım geçmişi veri modelini saklayın, ancak yalnızca ekstra "varsayılan paylaşım etkinliği" ni istemiyorum icom. How do you turn off share history when using ShareActionProvider?'daki yanıt yeterince iyi değil.
Ne yapmalıyım:
if (false)
ile bu satırı değiştirin hattını if (activityCount > 0 && historySize > 0)
Düzenleme: o şekilde görünecektir XML, menü öğesine yeni ActionProvider
ayarlamak unutmayın: android:actionProviderClass="com.*.CustomShareActionProvider"
Bu kadar!
Ben bir şey eksik, çünkü ActivityChooserModelClient şimdi uygulayamıyorum? – whitfin
Ayrıca (daha önce düzenleme yapmak benim için kötü); Eğer aktiviteyi ActionProvider ile bırakır ve ona geri dönerseniz, bir simgenin normal olacağı boş bir [] kutu görürsünüz. – whitfin
Bu çözümle ilgili sorun yaşıyorum. Com.actionbarsherlock.widget.ActivityChooserModel özel sınıflarımdan (dış paketlere engellendi) alınamadı. Bu sınıfı pakete bile kopyaladığım halde, çalışmadı (uygulama çöktü):/ –
Sean'ın cevabını temel alarak gerekli sınıfları oluşturdum, bunları projenize kopyalayabilirsiniz (https://gist.github.com/saulpower/10557956). Bu, yalnızca geçmişi kapatmak için değil, paylaşmak istediğiniz uygulamaları filtrelemek için de (paket adını biliyorsanız) ekler.
private final String[] INTENT_FILTER = new String[] {
"com.twitter.android",
"com.facebook.katana"
};
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.journal_entry_menu, menu);
// Set up ShareActionProvider's default share intent
MenuItem shareItem = menu.findItem(R.id.action_share);
if (shareItem instanceof SupportMenuItem) {
mShareActionProvider = new ShareActionProvider(this);
mShareActionProvider.setShareIntent(ShareUtils.share(mJournalEntry));
mShareActionProvider.setIntentFilter(Arrays.asList(INTENT_FILTER));
mShareActionProvider.setShowHistory(false);
((SupportMenuItem) shareItem).setSupportActionProvider(mShareActionProvider);
}
return super.onCreateOptionsMenu(menu);
}
Bunun için bir yol buldum. 23.0.1 destek kitaplığını kullanıyorum, bunu diğer destek kitaplığı sürümlerinde test etmedim.
ShareActionProvider oluşturduğunuzda çözüm, kolaydır, sadece onCreateActionView() yöntemini geçersiz kılın ve bunun için boş değer döndürün. Ardından, açılır menüdeki tüm geçmişi takip edebilirsiniz, ancak tarih, araç çubuğunda gösterilmeyecektir. Şu anda etrafta bu işi kullanarak herhangi bir sorun bulamadı
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuItem item = menu.add(Menu.NONE, R.id.menu_share, Menu.NONE, R.string.share);
item.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
mShareActionProvider = new ShareActionProvider(this) {
@Override
public View onCreateActionView() {
return null;
}
};
item.setIcon(R.drawable.abc_ic_menu_share_mtrl_alpha);
MenuItemCompat.setActionProvider(item, mShareActionProvider);
return true;
}
: Burada
bir kod örneğidir.
http: // stackoverflow.com/questions/10706564/how-do-you-dönüş-off-paylaşım-tarih-when-using-shareactionprovider –