问题标签 [shareactionprovider]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2590 浏览

android - 支持 v7 库中的 ShareActionProvider 不起作用

我正在尝试使用本教程http://developer.android.com/reference/android/support/v7/widget/ShareActionProvider.html中的支持库来实现 ShareActionProvider不知何故它无法按预期工作。下面是我的代码:

菜单xml文件:

在活动中:

我在 Activity 中导入 android.support.v7.widget.ShareActionProvider ,我确信没有像很多人一样的 ClassCast 异常。它只是以某种方式为空。我做错了什么?

0 投票
1 回答
68 浏览

android - 仅在单击共享按钮后执行共享所需的操作

我使用 aShareActionProvider来分享我的应用程序生成的图像。

问题是:我将一个临时图像文件写入磁盘仅用于共享 - 共享图像是屏幕上多个位图的组合,比方说在我自己的函数createComposition(Bitmap bitmap1, Bitmap bitmap2)中。现在,createComposition(b1, b2)每次内容更改时我都会运行,因此任何可能的共享都会导致共享正确的图像,但这会导致浪费大量 cpu 周期(和磁盘写入),因为大多数内容更改不会导致一份。

所以我宁愿在用户点击分享按钮创建这个临时文件,这样我就不必在每次屏幕内容发生变化时在磁盘上生成一个可能无用的图像。问题:我如何到达那里?有听众ShareActionProvider吗?onOptionsItemSelected无论如何,不​​会消失。

我是否需要延长ShareActionProvider,也许?

0 投票
2 回答
852 浏览

android - 仅将特定应用程序添加到 shareactionprovider

ShareActionProvider 为设备上的每个兼容应用程序提供共享。我想指定我希望允许共享的应用程序,例如只有 twitter 和 gmail。

我该怎么做?

0 投票
0 回答
537 浏览

android - 自定义 ActionProvider 中的 onPrepareSubMenu 从未调用

在我问这个问题之前,让我提供一些额外的信息:

我有一个片段,它MenuItemonCreateOptionsMenu. 添加的 MenuItem 还ActionProvider添加了一个自定义项。

自定义ActionProvider不使用 ActionView 而是准备一个SubMenu带有某些项目以供选择。出于这个原因,我设置ActionProvider如下:

  • nullonCreateActionView方法中返回
  • hasSubMenu()返回true
  • onPrepareSubMenu(SubMenu Menu)我首先清除当前菜单,然后添加所需的项目
  • 我正确处理onMenuItemClick了 ActionProvider 中的
  • 因为我使用的是 ActionBarSherlock,所以我的 ActionProvider 扩展了com.actionbarsherlock.view.ActionProviderandroid.support.v4.view.ActionProvider不知道它是否应该有任何区别,但此时我不知道有什么作用)

这一切在 Android 版本高于 3.0 的设备上运行良好。我看到添加的MenuItem,它具有正确的SubMenu(来自绑定的ActionProvider)并且每个菜单选项都发生了正确的操作。但是对于运行低于 3.0 的 Android 版本的设备(我只能在运行 2.3.6 的设备上进行测试),会发生一些奇怪的事情;因此下面的问题。

谷歌明确指出:

“onPerformDefaultAction()

当从动作溢出中选择菜单项并且动作提供者应该为菜单项执行默认动作时,系统调用它。但是,如果您的操作提供程序通过 onPrepareSubMenu() 回调提供子菜单,则即使将操作提供程序置于操作溢出中,子菜单也会出现。因此,当有子菜单时,永远不会调用 onPerformDefaultAction()。”

取自:http: //developer.android.com/guide/topics/ui/actionbar.html#CreatingActionProvider

从我认为的摘录中,onPerformDefaultAction()永远不要在我的自定义 ActionProvider 中调用它。然而,在运行 Android 版本 2.3.6 的设备上,onPerformDefaultAction()确实会调用,这也阻止了SubMenu显示。

我的问题是;为什么onPerformDefaultAction()调用而不是调用onPrepareSubMenu(SubMenu Menu)?我也需要运行 Android 2.3.6 的设备上的子菜单..


编辑:

我设法使用SubMenus.java来自 ActionbarSherlock 演示代码的相同技术解决了我的问题。这涉及将 aSubMenu而不是自定义 ActionProvider 添加到 中的菜单onCreateOptionsMenu(Menu menu),并附OnMenuItemClickListener加到那里的每个 MenuItem。

解决方法很简单。尽管如此,这并不能回答我关于为什么自定义 ActionProviders 不起作用的问题。

0 投票
1 回答
4114 浏览

android - 从毕加索获取图像uri?

我有一个相当大的图像 URL 列表,用于加载ViewPager使用 Picasso 的图像。我需要能够通过意图为这些图像提供共享功能(最终通过ShareActionProvider共享)。根据我的阅读,毕加索并不是真正为开箱即用地处理这类事情而设计的,尽管它提供了所有必要的工具来做到这一点。

我在研究之前的计划是创建一个LruCache使用 url 作为键和位图值的简单程序。这种缓存将onBitmapLoaded通过毕加索的Target界面发生。每当我想共享图像时,我都会检查缓存中的位图。如果它不在那里,我会用毕加索取来。既然我有一个缓存的位图,无论如何,我将写入一个文件(......这部分看起来不正确,尽管我必须写入一个文件来获取一个 uri,对吧?)并将文件 uri 添加到意图。

但是我看到Picasso.Builder我可以设置(并保留对)我自己的缓存 - https://stackoverflow.com/a/18552559/413254。这意味着我可以通过正确实施和方法消除习惯Target和混乱,以确保准确的回收、检索等。hashCodeequals

我的问题是,毕加索如何使用这个缓存?什么是钥匙?有没有办法在不将其写入磁盘的情况下获取位图 Uri?

0 投票
1 回答
1231 浏览

android - 与 ShareActionProvider 共享图像

我正在尝试通过 Android 的 ShareActionProvider 共享下载的位图,但实际上将位图传递给适当的应用程序(例如 Messenger、Google+、Gmail)时遇到了问题。当我通过 uri 传递意图时,没有任何反应(图像未填充到 3rd 方应用程序中)。

这是我的意图:

我目前正在使用以下方法将位图保存到文件中:

我正在用这种方法检索 Uri

我已经检查了文件是否被写入了适当的位置(Uri is file:///storage/emulated/0/myApp/cached-image.png)并且能够在那里查看图像(adb pull从设备进行),尽管图像没有通过。我在日志中看不到任何错误(没有 FileNotFoundException 或任何类似的错误)。这是文件权限问题吗?我不能分享到“非公开”位置吗?

如果我改成getExternalStorageDirectory() + File.separator + "myApp";普通getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)的,它可以正常工作......但它让我感到困扰,它不会以另一种方式工作:)。

任何帮助都会很棒!

0 投票
1 回答
94 浏览

android - 带有 ListFragment 的 ShareActionProvider

我想使用 aShareActionProvider来分享我的内容ListFragment(其中包括来自ArrayAdapter带有 a 的馈送的文本条目ArrayList<MyObject>)。

我该怎么做呢?

我知道我必须创建一个新的 Intent 并使用setType("text/plain"),但是setAction()我应该使用Intent.ACTION_SENDandIntent.ACTION_SEND_MULTIPLE吗?

设置内容时,我应该使用putExtraorputParcelableArrayListExtra吗?

我是否使用来自ListFragment、 或来自ArrayAdapter、 或来自的数据来设置ArrayList<MyObject>Intent ,ArrayAdapter或者来自构建之前的数据ArrayList

0 投票
3 回答
2310 浏览

android - ClassCastException:android.support.v7.widget.ShareActionProvider

我正在尝试实现 ShareActionProvider 但得到:

菜单.xml:

我将此导入我的班级:

完整的日志:

0 投票
2 回答
1480 浏览

android - 空指针异常 - android.support.v7.widget.ShareActionProvider

我在过去 2 个小时里编写了一个简单的程序,但没有得到这个小问题的任何解决方案,使用下面的代码:

MainActivity.java:-

main.xml:-

我在这个小程序中没有找到我做错的地方......请让我知道我的错误并帮助我解决这个问题!

行号:79

我跟着这个教程

日志说:

0 投票
1 回答
111 浏览

java - Android 菜单项单一分享按钮

我正在尝试在我的操作栏 Sherlock 中添加一个共享按钮。

我不想让第二个分享按钮像那样出现在它旁边在此处输入图像描述

我怎样才能做到这一点?