Nic*_*her 3 string android uri reference
尝试在Android Activity中执行此代码时:
Uri testurl = Uri.parse("http://www.google.com");
Log.v("HTTPGet", "testurl.toString == " + testurl.toString());
Run Code Online (Sandbox Code Playgroud)
Logcat中唯一的输出是对字符串的引用,但不是字符串本身:
HTTPGet(23045): testurl.toString == [Landroid.net.Uri;@4056e398
Run Code Online (Sandbox Code Playgroud)
如何打印实际字符串?
在Uri上调用getEncodedPath()以获取其中的字符串.
像下面的东西
// imageUri is an Uri extracted from Intent
String filePath = imageUri.getEncodedPath();
Run Code Online (Sandbox Code Playgroud)
此filePath将具有Uri中定义的字符串内容.即内容:/ media .../id
词shash
原始答案(从头开始)
Uri.toString 从类 Uri 中写出 URI 对象的描述。
文档在这里:http : //developer.android.com/reference/android/net/Uri.html
要获得人类可读的版本,请调用为该类定义的 getter 方法。
真正的答案
OP 已经澄清并提供了实际代码。这是实际的上下文:
@Override
protected Document doInBackground(Uri... arg0) {
Document ret = null;
Log.v("HTTPGet", "Uri.toString == " + arg0.toString());
try {
ret = Jsoup.connect(arg0.toString()).get();
} catch (IOException e) {
e.printStackTrace();
}
return ret;
}
Run Code Online (Sandbox Code Playgroud)
这里发生的是参数arg0具有类型Uri[],即Uri 数组。点-点-点语法是 Java 的“可变参数”。这意味着参数实际上是一个数组,但不是在调用中传递数组,而是可以传递 Java 将捆绑到数组中的任意数量的参数。
因为您使用的是第三方库,所以您必须覆盖这个接受一个或多个Uris 的方法。您假设只会使用一个。如果是这种情况,你应该写
Log.v("HTTPGet", "Uri.toString == " + arg0[0].toString());
Run Code Online (Sandbox Code Playgroud)
如果您真的要处理多个 uri,请使用 for 循环遍历并记录所有这些。
确保也修复您的Jsoup.connect线路。它不想要一个凌乱的数组字符串。:)
| 归档时间: |
|
| 查看次数: |
10164 次 |
| 最近记录: |