将图标更改为android.support.v7.widget.ShareActionProvider

时间:2015-04-14 09:22:30

标签: android shareactionprovider

我想在操作栏中更改共享项目的图标。

这是我的菜单文件:

<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。

0 个答案:

没有答案