小编Siv*_*mar的帖子

为什么当setData()和setType()不起作用时,android intent的setDataAndType()工作正常?

我在android中使用隐式意图进行文件编辑有一个问题,它已经解决了,知道了,需要花费大量的时间和排列和组合来解决它,但最后我仍然怀疑,问题得到了解决但我的问题已经解决了解决的问题没有解决.

如果您对此有任何疑问,请告诉我.

来我的问题.

  1. 我有一项活动.我在活动中有一个Button.我想打开存储在"/mnt/sdcard/xxx/log.txt"位置的预先存在的日志文件(这是一个文本文件示例log.txt)

  2. 下面是我写的隐式意图代码,最后我发现了一个例外情况"找不到任何活动"

code1:我试过并得到了例外

Uri uri = Uri.parse("file:///sdcard/xxx/log.txt");
Intent viewTestLogFileIntent = new Intent(Intent.ACTION_EDIT,uri);
viewTestLogFileIntent.setType("text/plain");
Run Code Online (Sandbox Code Playgroud)

code2:我试过并得到了异常

Uri uri = Uri.parse("file:///sdcard/xxx/log.txt");
Intent viewTestLogFileIntent = new Intent(Intent.ACTION_EDIT);
viewTestLogFileIntent.setData(uri);
viewTestLogFileIntent.setType("text/plain");
Run Code Online (Sandbox Code Playgroud)

code3:我试过并且工作正常

Uri uri = Uri.parse("file:///sdcard/xxx/log.txt");
Intent viewTestLogFileIntent = new Intent(Intent.ACTION_EDIT);
viewTestLogFileIntent.setDataAndType(uri,"text/plain");
Run Code Online (Sandbox Code Playgroud)

我有两个疑问

  1. 首先我的文件位于/mnt/sdcard/xxx/log.txt这个我可以清楚地看到eclipse的DDMS视图中的文件系统,但是当我将文件链接在uri中作为"文件时,它是如何工作的: ///sdcard/xxx/log.txt"我从路径跳过/ mnt

  2. code1和code2有什么问题?什么是我在code3中设置的数据和类型我设置相同的数据和类型的意图,但分别使用不同的方法,如setData()和setType().为什么他们(code2和code1)不工作?为什么code3工作?

android

4
推荐指数
1
解决办法
9142
查看次数

标签 统计

android ×1