我正在尝试使用带有 android.support.v7 的 ShareActionProvider 共享一个简单的文本,以便在 ActionBar 中放置一个共享按钮。我的应用程序必须使用最少的 API 级别 8。问题:当我使用 API 19(目标级别)模拟代码时,它可以正常工作,但是当我使用 API-8 设备进行模拟时,弹出菜单会显示应用程序列表共享仅显示应用程序的名称,不显示其图标。我尝试使用具有 API-9 的真正 android 设备并遇到同样的问题:也没有图标。这是我的代码:
在 menu.xls 中:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="package.ActivityName" >
<item
android:id="@+id/menuitemShare"
android:orderInCategory="1"
android:title="@string/menu1"
android:icon="@drawable/ic_action_share"
app:showAsAction="ifRoom"
app:actionProviderClass="android.support.v7.widget.ShareActionProvider"
/>
</menu>
在java活动中:
public class ActivityName extends ActionBarActivity {
private ShareActionProvider mShareActionProvider;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.bem_vindo2, menu);
MenuItem shareItem = menu.findItem(R.id.menuitemCompartilhar);
mShareActionProvider = (ShareActionProvider)
MenuItemCompat.getActionProvider(shareItem);
mShareActionProvider.setShareIntent(getDefaultIntent());
return super.onCreateOptionsMenu(menu);
}
private Intent getDefaultIntent() {
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TEXT, "text to share");
return intent;
}
}