获得Image Confusion类型的意图

时间:2016-06-14 20:53:01

标签: android android-intent

我目前正在学习Android,并且遇到了这个:

    if (intent.getType().indexOf("image/") != -1) {
    // Handle intents with image data ...
    } else if (intent.getType().equals("text/plain")) {
    // Handle intents with text ...

我不明白为什么有intent.getType().indexOf("image/")!=-1,据我所知,它被用来知道如果意图包含Image类型的数据(如果错误则纠正我)。但为什么不像它一样使用类型"text/plain"。为什么使用indexOf以及为何选中-1

赦免,如果这个问题毕竟没有意义。但是,正如我所说,我正在学习,并没有在任何地方找到它的很多信息。

2 个答案:

答案 0 :(得分:1)

我的猜测是,编写代码的人使用它来尝试匹配以image/开头的任何内容。使用startsWith()会更简单,更可靠。

答案 1 :(得分:1)

getType将返回一个mimetype,例如“image / png”“text / plain”“application / json”等。

indexOf调用是查看字符串“image /”是否存在于mimetype中的某个位置 - 或者更实际的是如果类型是图像。作者不关心它是jepg(“image / jpeg”)还是png(“imgage / png”)等等,只是它是一个图像。

对-1的检查是因为如果“image /”子字符串而不是,那将是返回值。

如果它不是图像,则会检查它是否是纯文本。

这可能不是实现这一目标的最简洁方法,但它可以完成工作。