在通过 Facebook_Android SDK 发送请求时,我得到了一个包作为返回。有人可以解释它是什么数据类型以及如何提取其中的数据吗?谢谢。
01-28 11:58:07.548: I/Values(16661): Bundle[{to[0]=100005099741441, to[1]=100005089509891, request=134129756751737}]
编辑 这里,to[i] 是一个字符串数组。我能够做到。但我认为这不是正确的做法。
for(int i=0;i< size-1;i++){
System.out.println(values.getString("to["+i+"]"));
}
其中 size
是名为 value
的 Bundle 的大小
最佳答案
Bundle
基本上是一本字典。 Bundle 中的每个值都存储在一个 key
下。您必须知道键下值的类型。当您知道类型时,您可以通过调用与值类型相关的方法来访问与 key
关联的值(同样,您必须知道类型)。
例如,如果 key
是 request
并且它的类型是 String
你会调用:
String value = bundle.getString("request");
如果类型是long
,你会调用:
long value = bundle.getLong("request");
如果值是 String
类型,要遍历 to
数组,您可以这样做:
for (int i = 0; bundle.containsKey("to[" + i + "]"); i++) {
String toElement = bundle.getString("to[" + i + "]");
}
它不依赖于 bundle 对象的大小。
应在适用于 Android 的 Facebook API 中提供 bundle 中的所有键和每个键的值类型。如果您需要有关 Bundle
对象的更多信息,请查看 reference here .
关于java - 如何从 Android 中的 bundle 中提取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14556707/