java - 如何从 Android 中的 bundle 中提取值

标签 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}]

编辑 这里,to[i] 是一个字符串数组。我能够做到。但我认为这不是正确的做法。

for(int i=0;i< size-1;i++){
System.out.println(values.getString("to["+i+"]"));
}

其中 size 是名为 value 的 Bundle 的大小

最佳答案

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

例如,如果 keyrequest 并且它的类型是 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/

相关文章:

java - TextView 和 ViewGroup,java.lang.RuntimeException :

android - spannableStringBuilder 无法在单个 TextView 中使用多个跨度

android - Proguard 和 Google SDK/Facebook SDK 缺少方法

android - 自定义对象 Facebook android 打开图

android - 如何在 Android 中为 Facebook Login SDK 撤销特定(或所有)用户权限

java - 如何在android上制作一个按下和释放的自定义按钮?

java - 如何使用 Java 转储远程 MySQL 数据库?

java - BeanUtils - 'describe' 方法返回 InitationTargetException

java - Spring Data JPA 返回指定范围的日期列表(开始日期和结束日期)

Android:将这种格式的时间 `yyyy-mm-dd hh:mm:ss` 与当前时刻进行比较