如何在Android中从bundle中提取值

sar*_*ran 11 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+"]"));
}
Run Code Online (Sandbox Code Playgroud)

size被称为Bundle的大小在哪里value

and*_*ndr 14

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

例如,如果keyrequest和它的类型,String你会调用:

String value = bundle.getString("request");
Run Code Online (Sandbox Code Playgroud)

如果类型是long,你会打电话:

long value = bundle.getLong("request");
Run Code Online (Sandbox Code Playgroud)

要循环to数组,只要该值是类型,String您可以执行以下操作:

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

它不依赖于bundle对象的大小.

应在Facebook API for Android中提供捆绑中的所有密钥以及每个密钥的值类型.如果您需要有关该Bundle物体的更多信息,请在此处查看参考.