Lim*_*imp 6 android popupmenu shareactionprovider
我在PopupMenu中使用ShareActionProvider,但是当我单击共享菜单项时,它会在屏幕上显示两个PopupMenus,一个被另一个覆盖.一个显示应用程序图标和名称,另一个显示应用程序名称.
除了这个问题它工作正常......
我该如何解决?
PS:请原谅我的坏表达
我的代码是:
PopupMenu popup = new PopupMenu(this, button);
popup.getMenuInflater().inflate(R.menu.scrawl_popup_menu, popup.getMenu());
MenuItem overflowItem = popup.getMenu().findItem(R.id.popup_share);
ShareActionProvider overflowProvider =
(ShareActionProvider) overflowItem.getActionProvider();
overflowProvider.setShareHistoryFileName(
ShareActionProvider.DEFAULT_SHARE_HISTORY_FILE_NAME);
overflowProvider.setShareIntent(createShareIntent());
Run Code Online (Sandbox Code Playgroud)
menu.xml是:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/popup_clear"
android:icon="@drawable/ic_menu_clear"
android:title="@string/popup_menu_clear" />
<item android:id="@+id/popup_insert_bg"
android:icon="@drawable/ic_menu_insert_bg"
android:title="@string/popup_menu_insert_bg"/>
<item android:id="@+id/popup_share"
android:icon="@android:drawable/ic_menu_share"
android:title="@string/popup_menu_share"
android:actionProviderClass="android.widget.ShareActionProvider">
</item>
</menu>
Run Code Online (Sandbox Code Playgroud)
我必须使用 startActivity(getShareIntent("/status.jpg")); 这并不完全按照您的预期工作。然而,它可以用于相同的目的。希望有帮助。
private Intent getShareIntent(String filePath) {
Intent shareIntent = new Intent(Intent.ACTION_SEND);
File sdCard = Environment.getExternalStorageDirectory();
File sharedFile = new File(sdCard + sharePath);
Uri uri = Uri.fromFile(sharedFile);
shareIntent.setType("image/*");
shareIntent.putExtra(Intent.EXTRA_STREAM, uri);
return shareIntent;
}
Run Code Online (Sandbox Code Playgroud)
然而,最后我转而使用带有选择模式的操作栏: http: //developer.android.com/design/patterns/selection.html
| 归档时间: |
|
| 查看次数: |
769 次 |
| 最近记录: |