如何在Android中从捆绑提取值

通过Facebook_Android SDK发送请求时,我得到一个包。 有人可以解释它是什么数据types,以及如何提取其中的数据? 谢谢。

01-28 11:58:07.548: I/Values(16661): Bundle[{to[0]=100005099741441, to[1]=100005089509891, request=134129756751737}]

编辑这里,[i]是一个string数组。 我能够做到这一点。 但我不认为它是正确的做法。

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

其中size是被称为value的Bundle的大小

Solutions Collecting From Web of "如何在Android中从捆绑提取值"

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

例如,如果keyrequest ,其types是String你可以调用:

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

如果types很long ,则可以调用:

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

要循环to数组,只要值的types为String ,就可以这样做:

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

这不依赖于bundle对象的大小。

捆绑中的所有密钥以及每个密钥的值types都应在Android的Facebook API中提供。 如果您需要有关Bundle对象的更多信息,请参阅此处的参考资料 。

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