如何从 Android 中的捆绑包中提取值

2022-09-04 20:09:39

在通过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+"]"));
}

其中 是称为的捆绑包的大小sizevalue


答案 1

A基本上是一本字典。捆绑包中的每个值都存储在 .您必须知道键下的值的类型。知道类型后,通过调用与值的类型相关的方法访问与 关联的值(同样,您必须知道该类型)。Bundlekeykey

例如,如果 is 及其类型是,则可以调用:keyrequestString

String value = bundle.getString("request");

如果类型为 ,则调用:long

long value = bundle.getLong("request");

要循环访问数组(前提是该值为类型),您可以执行以下操作:toString

for (int i = 0; bundle.containsKey("to[" + i + "]"); i++) {
    String toElement = bundle.getString("to[" + i + "]");
}

它不依赖于捆绑对象的大小。

捆绑包中的所有密钥以及每个密钥的值类型都应在适用于Android的Facebook API中提供。如果您需要有关该对象的更多信息,请查看此处的参考资料Bundle


答案 2
Bundle bundle = intent.getBundle();
bundle.getString("ITEM_NAME");

推荐