我目前正在学习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
。
答案 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 /”子字符串而不是,那将是返回值。
如果它不是图像,则会检查它是否是纯文本。
这可能不是实现这一目标的最简洁方法,但它可以完成工作。