我在使用隐式 Intent 在 android 中编辑文件时遇到了一个问题,它已经解决了知道,它花了很多时间和排列组合来解决它,但最后我仍然有疑问,问题已经解决了但是我的追求知道解决了的问题为什么没有解决。
如果您对此有任何线索,请告诉我。
来到我的问题。
我有一项 Activity 。我在 Activity 中有一个按钮。我想打开存储在“/mnt/sdcard/xxx/log.txt”位置的预先存在的日志文件(这是一个文本文件示例 log.txt)
下面是我写的隐式 Intent 代码,我以异常“找不到 Activity ”结束
代码 1:我尝试过但出现异常
Uri uri = Uri.parse("file:///sdcard/xxx/log.txt");
Intent viewTestLogFileIntent = new Intent(Intent.ACTION_EDIT,uri);
viewTestLogFileIntent.setType("text/plain");
code2:我试过但出现异常
Uri uri = Uri.parse("file:///sdcard/xxx/log.txt");
Intent viewTestLogFileIntent = new Intent(Intent.ACTION_EDIT);
viewTestLogFileIntent.setData(uri);
viewTestLogFileIntent.setType("text/plain");
code3:我试过并且工作正常
Uri uri = Uri.parse("file:///sdcard/xxx/log.txt");
Intent viewTestLogFileIntent = new Intent(Intent.ACTION_EDIT);
viewTestLogFileIntent.setDataAndType(uri,"text/plain");
我有两个疑惑是
首先,我的文件位于/mnt/sdcard/xxx/log.txt 中,我可以在 eclipse 的 DDMS View 中的文件系统中清楚地看到它,但是当我提供文件链接时它是如何工作的在 uri 中作为“file:///sdcard/xxx/log.txt”,其中我从路径中跳过了/mnt
code1 和 code2 有什么问题? 我在 code3 中设置的数据和类型是什么我正在设置相同的数据和类型,但分别使用不同的方法,如 setData() 和 setType()。为什么它们(代码 2 和代码 1)不工作?为什么 code3 有效?
最佳答案
请查看类Intent
中方法setType(String type)
的Javadoc:
...
此方法会自动清除之前设置的任何数据(例如通过 setData(Uri))。
...
关于android - 为什么当 setData() 和 setType() 不工作时,android intent 的 setDataAndType() 工作正常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13719471/