21

我一直在查看stackoverflow,但我没有找到关于什么是“createChooser”以及为什么我可以使用以及在哪种情况下使用它的定义。

提前致谢。

4

3 回答 3

25

例如:您的应用程序中有一个共享图片选项。

您定义这样的意图:

Intent picMessageIntent = new Intent(android.content.Intent.ACTION_SEND);
picMessageIntent.setType("image/jpeg");

File downloadedPic =  new File(
    Environment.getExternalStoragePublicDirectory(
    Environment.DIRECTORY_DOWNLOADS),
    "q.jpeg");

picMessageIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(downloadedPic));

比你打电话时:

startActivity(picMessageIntent);  

将列出您手机上能够获取此图片的所有应用程序。

如果要自定义该列表的标题,可以像这样使用 createChooser:

startActivity(Intent.createChooser(picMessageIntent, "Send your picture using:"));

在此处输入图像描述

于 2012-04-24T08:46:07.570 回答
6

当您的应用首次调用 startActivity(intent) 时,用户会看到能够处理此意图的所有应用的列表。

还有一个选项可以始终使用列表中的一个应用程序来处理此意图。如果使用此选项,则列表将永远不会再次显示。

如果您在意图中使用 createChooser,则不会显示“始终使用此应用程序”选项。用户始终会看到此列表。

于 2014-06-04T19:03:06.200 回答
1

当您想使用 Intent 创建自定义操作时使用此方法...就像 android 提供的ACTION_VIEW等等...但是在这里,当有多个选择来执行操作时,此选择器将弹出一个对话框,其中包含所有可用选项并让用户选择一个......这是一个例子

于 2012-04-24T08:35:48.590 回答