Bundle 是通过 key 来得到数据的,比如:
public float getFloat (String key)
就是通过 key 来取得数据的,这个 key 是一个 String 类型。
那么可以确定 Bundle 里面应该保存了一个 map ,使得 key 和 value 对应。而且 Bundle 提供了一个方法可以得到所有的 key:
public Set<String> keySet ()
所有的 key 可以通过这个方法保存到 Set 中。
那现在有 key 了,就可以得到所有的 value 了,但是我们不知道 value 的类型,那么可以用这个函数来取得:
public Object get (String key)
在 Java 中所有类型都可以转换为 Object ,再进行向下转型就可以得到具体的 value 了。
遍历的方法如下:
Set<String> keySet = bundle.keySet();
for(String key : keySet) {
Object value = bundle.get(key);
...
}
Bundle bundle = new Bundle();
bundle.putString("times", mTimes+"");
bundle.putString("reqId", in.getId()+"");
.....
.....
Intent j = new Intent("ACTION_GETRESULT");
j.putExtras(bundle);
j.putExtra("newKey", native);
读取的时候, 不光是原bundle ,后来加入的newKey也会被读出来
……
Bundle bundle = intent.getExtras();