我想在操作栏中更改共享项目的图标。
这是我的菜单文件:
<item
android:id="@+id/menu_item_share"
app:showAsAction="always"
android:title="@string/menu_share"
app:actionProviderClass="android.support.v7.widget.ShareActionProvider"
/>
<item>
我的活动扩展了ActionBarActivity:
import android.support.v7.widget.ShareActionProvider;
private ShareActionProvider mShareActionProvider;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.menu.main_menu, menu);
// Locate MenuItem with ShareActionProvider
MenuItem item = menu.findItem(R.id.menu_item_share);
// Fetch and store ShareActionProvider
mShareActionProvider = (ShareActionProvider) MenuItemCompat.getActionProvider(item);
Intent shareIntent = new Intent(Intent.ACTION_SEND)
.putExtra(Intent.EXTRA_TEXT, "text")
.setType("text/plain");
mShareActionProvider.setShareIntent(shareIntent);
return true;
}
我尝试更改样式文件:
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light">
<item name="android:windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:actionBarWidgetTheme">@style/Theme.AppCompat.CustomShareIcon</item>
</style>
<!-- Custom Share Icon -->
<style name="Theme.AppCompat.CustomShareIcon" parent="@style/Theme.AppCompat">
<item name="android:actionModeShareDrawable">@drawable/share</item>
</style>
但我得到了android:actionModeShareDrawable需要API级别21,所以我将代码移动到v21 / styles但仍然不起作用。
我还尝试创建自定义共享提供程序Setting a custom share icon on Actionbar ShareActionProvider without ActionBarSherlock,但我得到了java.lang.ClassCastException。