我想分享一個簡單的文本使用ShareActionProvider與android.support.v7把一個共享按鈕放在ActionBar中。我的應用程序必須使用最低的API級別8工作。 問題:當我使用API 19(targel級別)模擬代碼時,它工作正常,但是當我使用API-8設備進行模擬時,彈出式菜單分享的應用程序只顯示應用程序的名稱,不顯示其圖標。我嘗試了一個真正的Android設備與API-9並得到了同樣的問題:沒有圖標。 這裏是我的代碼:使用android.support.v7共享菜單不顯示應用程序圖標
在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;
}
}