如何在Android中从bundle中提取值

时间:2013-01-28 06:39:21

标签: java android facebook-android-sdk

通过 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

的Bundle的大小

2 个答案:

答案 0 :(得分:13)

Bundle基本上是一本字典。 Bundle中的每个值都存储在key下。您必须知道密钥下的值类型。当您知道类型时,可以通过调用与值类型相关的方法来访问与key关联的值(同样,您必须知道类型)。

例如,如果keyrequest且类型为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");