犯了个错误,以前从没注意过(主要是没写错过)

put的key与get的key大小写不一样导致无法取到值



看了下bundle的数据存储,原来是HashMap<String,Object>,好吧,释然了.

static {
       EMPTY = new Bundle();
       EMPTY.mMap = Collections.unmodifiableMap(new HashMap<String, Object>());
   }
  
   // Invariant - exactly one of mMap / mParcelledData will be null
   // (except inside a call to unparcel)
  
   /* package */ Map<String, Object> mMap = null;
  
 
/**
     * Inserts a String value into the mapping of this Bundle, replacing
     * any existing value for the given key.  Either key or value may be null.
     *
     * @param key a String, or null
     * @param value a String, or null
     */
    public void putString(String key, String value) {
        unparcel();
        mMap.put(key, value);
    }
  
/**
    * Returns the value associated with the given key, or null if
    * no mapping of the desired type exists for the given key or a null
    * value is explicitly associated with the key.
    *
    * @param key a String, or null
    * @return a String value, or null
    */
   public String getString(String key) {
       unparcel();
       final Object o = mMap.get(key);
       try {
           return (String) o;
       } catch (ClassCastException e) {
           typeWarning(key, o, "String", e);
           return null;
       }
   }