当前位置: 代码迷 >> Android >> Android Bundle储存数据类型
  详细解决方案

Android Bundle储存数据类型

热度:33   发布时间:2016-04-28 07:29:45.0
Android Bundle存储数据类型

曾经被问到这样一个问题:Bundle能存哪些数据类型,不能存哪些数据类型?

当时那个汗啊,因为,平常使用Bundle,要么使用基本数据类型,要么序列化自定义的Class,那到底能存哪些类型,不能存哪些呢?

今天查阅了下google官方的文档(http://developer.android.com/reference/android/os/Bundle.html),罗列了以下这些是可以的:

void  putAll(Bundle map) void  putBinder(String key, IBinder value) void  putBoolean(String key, boolean value) void  putBooleanArray(String key, boolean[] value) void  putBundle(String key, Bundle value) void  putByte(String key, byte value) void  putByteArray(String key, byte[] value) void  putChar(String key, char value) void  putCharArray(String key, char[] value) void  putCharSequence(String key, CharSequence value) void  putCharSequenceArray(String key, CharSequence[] value) void  putCharSequenceArrayList(String key, ArrayList<CharSequence> value) void  putDouble(String key, double value) void  putDoubleArray(String key, double[] value) void  putFloat(String key, float value) void  putFloatArray(String key, float[] value) void  putInt(String key, int value) void  putIntArray(String key, int[] value) void  putIntegerArrayList(String key, ArrayList<Integer> value) void  putLong(String key, long value) void  putLongArray(String key, long[] value) void  putParcelable(String key, Parcelable value) void  putParcelableArray(String key, Parcelable[] value) void  putParcelableArrayList(String key, ArrayList<? extends Parcelable> value) void  putSerializable(String key, Serializable value) void  putShort(String key, short value) void  putShortArray(String key, short[] value) void  putSparseParcelableArray(String key, SparseArray<? extends Parcelable> value) void  putString(String key, String value) void  putStringArray(String key, String[] value) void  putStringArrayList(String key, ArrayList<String> value) 

一目了然:MAP,基本数据类型,基本数据类型数组,Parcelable类型及Parcelable类型数组,Serializable类型(无Serializable类型数组!),ArrayList

从以上发现,数据存储在连续的内存地址上的可以使用,其它存储方式不行(如链表存储就不行)。

 

如果有说错的地方,希望大家纠正,谢谢!

  相关解决方案