通过 Facebook_Android SDK 发送请求时,我得到了一个包。有人可以解释它是什么数据类型以及如何提取数据?谢谢。
01-28 11:58:07.548: I/Values(16661): Bundle[{to[0]=100005099741441, to[1]=100005089509891, request=134129756751737}]
修改 这里,[i]是一个字符串数组。我能够做到。但我不认为这是正确的做法。
for(int i=0;i< size-1;i++){
System.out.println(values.getString("to["+i+"]"));
}
其中size
是名为value
答案 0 :(得分:13)
Bundle
基本上是一本字典。 Bundle中的每个值都存储在key
下。您必须知道密钥下的值类型。当您知道类型时,可以通过调用与值类型相关的方法来访问与key
关联的值(同样,您必须知道类型)。
例如,如果key
为request
且类型为String
,您可以致电:
String value = bundle.getString("request");
如果类型为long
,您可以致电:
long value = bundle.getLong("request");
要遍历to
数组,只要该值为String
类型,您就可以执行此操作:
for (int i = 0; bundle.containsKey("to[" + i + "]"); i++) {
String toElement = bundle.getString("to[" + i + "]");
}
,它不依赖于bundle对象的大小。
应在Facebook API for Android中提供捆绑包中的所有密钥以及每个密钥的值类型。如果您需要有关Bundle
对象的更多信息,请查看reference here。
答案 1 :(得分:3)
Bundle bundle = intent.getBundle();
bundle.getString("ITEM_NAME");