【问题标题】:How to share multiple files using ShareActionProvider in Contextual Action Bar?如何在上下文操作栏中使用 ShareActionProvider 共享多个文件?
【发布时间】:2014-11-03 03:40:30
【问题描述】:

我的 Activity 中有一个 ListView。长按该列表视图,我打开了上下文操作栏。它有一个共享选项,可以通过gmail/whatsapp/等共享列表中的选定项目(可以选择多个项目)。

<item android:id="@+id/menu_share" android:title="Share" android:icon="@android:drawable/ic_menu_share" android:actionProviderClass="android.widget.ShareActionProvider" app:showAsAction="ifRoom" />

这是我在菜单布局文件中的共享选项。

我有一个实现 ActionMode.Callback 的类来处理上下文操作栏及其图标。

我在共享菜单项的覆盖 onCreateActionMode(ActionMode mode, Menu menu) 内初始化了一个 ShareActionProvider 对象。

mShareActionProvider = (ShareActionProvider) menuItem.getActionProvider();

我的列表视图由文件名组成。 我的要求是,如果用户在列表视图中选择多个项目(首先长按,然后正常按连续选择),我应该能够共享所有这些文件。

我将以下内容用于这样的意图(与列表视图中的文件名对应的所有文件都是音频 - amr 文件)。

Intent shareIntent = new Intent(Intent.ACTION_SEND_MULTIPLE);
shareIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM,uriList);
shareIntent.setType("audio/AMR");

这里,uriList 是 Uris 的 ArrayList。现在我应该在哪里调用方法 mShareActionProvider.setShareIntent(intent);

我不能在onCreateActionMode(ActionMode mode, Menu menu) 中调用它,因为用户可能会在第一次长按后选择列表中的更多项目。

如果我直接在 onActionItemClicked(ActionMode mode, MenuItem item) 中调用它,我的分享图标似乎是不活动的。

如果我在 onCreateActionMode(ActionMode mode, Menu menu)onActionItemClicked(ActionMode mode, MenuItem item) 中使用相同的意图调用它,则共享意图似乎没有更新。请帮忙..

【问题讨论】:

    标签: android contextual-action-bar shareactionprovider


    【解决方案1】:

    我不能在 onCreateActionMode(ActionMode mode, Menu menu) 中调用它,因为用户可能会在第一次长按后选择列表中的更多项目。

    尝试在 @987654321 @in @987654321 @in @987654321 @in @9877654322 @提供更新的Extras。

    时,请尝试将其调用。

    【讨论】:

    • 如果不使用 MultichoiceModeListener 及其 OnItemCheckedStateChanged() 就不可能实现这个 ShareActionProvider 吗?因为,我已经通过仅使用 ActionMode.CallBack 而不是任何 MultiChoiceModeListener 来实现“删除”多个项目 ..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-01
    • 2018-06-06
    • 2013-07-21
    • 1970-01-01
    • 1970-01-01
    • 2019-03-18
    • 1970-01-01
    相关资源
    最近更新 更多