意图选择器屏幕中自定义项目的回调

Posted

技术标签:

【中文标题】意图选择器屏幕中自定义项目的回调【英文标题】:Callback for Custom Item in Intent Chooser Screen 【发布时间】:2015-12-21 09:04:33 【问题描述】:

我的用例是从 Intent Chooser 的自定义下载选项中下载图像。我知道我可以通过添加如下代码来添加自定义选项:

Intent share = new Intent(Intent.ACTION_SEND);
share.setType("text/plain");       
share.putExtra(Intent.EXTRA_TEXT, message);

Intent addIntent = ;//whatever you want

Intent chooser = new Intent(Intent.ACTION_CHOOSER);
chooser.putExtra(Intent.EXTRA_INTENT, share );      
chooser.putExtra(Intent.EXTRA_TITLE, "title");

Intent[] intentArray =  addIntent ; 
chooser.putExtra(Intent.EXTRA_INITIAL_INTENTS, intentArray);
startActivity(chooser);

我也有为我下载图像的功能。我的问题是,我是否可以检测到用户选择/单击了自定义选项,然后直接为我的下载功能设置回调并继续下载操作?

注意:我不想在此过程中启动任何新活动。只是寻找关于我如何在选择器中为这个自定义选项设置回调的指针。

【问题讨论】:

【参考方案1】:

我是否可以检测到用户选择/单击了自定义选项,然后直接为我的下载函数设置回调并继续下载操作?

仅在 android 5.1+ 上,如果您使用 the three-parameter flavor of createChooser(),您可以在其中提供一个 IntentSender,用于通知选择...然后仅当通过“直接设置回调到我的下载函数并继续下载操作”你的意思是“启动一个下载的活动”。

否则,您需要滚动自己的选择器样式 UI,然后使用用户的选择来制作明确的 Intent 以将用户路由到请求的活动。

【讨论】:

非常感谢。这很有帮助。我想我会去推出我自己的自定义样式选择器。我会在几分钟后接受这个答案。

以上是关于意图选择器屏幕中自定义项目的回调的主要内容,如果未能解决你的问题,请参考以下文章

在超集中构建自定义马条形图并添加自定义项以自定义图表

用于自定义项目的 C DLL

长按自定义项 UICollectionViewCell 图像更改

如何获取自定义单元格并通过 indexpath 使用它的自定义项 - swift3?

自定义适用于手机和平板电脑的 Dynamics 365:窗体自定义项

Qt QML 锚在自定义项中不起作用