Bundle传值与取值
通过下面的方法发送对象。Bundle类也实现了Parcelable接口,一般在android中我们是通过Bundle来封装数据并进行传送的。
Intent intent = new Intent();
intent.setClass(this, SubActivity.class);
// 直接添加
//intent.putExtra("MyData", new ParcelableData());
// 通过Bundle
Bundle bundle = new Bundle();
bundle.putString("MyString", "test bundle");
bundle.putParcelable("MyData", new ParcelableData());
intent.putExtras(bundle);
startActivity(intent);
下面的接收对象的方法。
//ParcelableData parcelableData = getIntent().getParcelableExtra("MyData");
Bundle bundle = getIntent().getExtras(); /取出来的是个数组
//Bundle e = intent.getExtras();//取出来的是个数组
ParcelableData parcelableData = bundle.getParcelable("MyData");
//通过相应的key,取出相应的值
String testBundleString = bundle.getString("MyString");
Log.v("string=", testBundleString);
Log.v("name=", parcelableData.getName());
Log.v("age=", ""+parcelableData.getAge());
Bundle类是一个final类,其功能是“A mapping from String values to various Parcelable types.”,也就是说是一个存储和管理key-value对的类,多应用于Activity之间相互传递值
结构函数
1 public Bundle ()
功能:构造一个新的,空束。
2 public Bundle (ClassLoader loader)
功能:构造一个新的空包,使用一个特定的ClassLoader实例Parcelable和Serializable对象。
3 public Bundle (int capacity)
功能:构造一个新的,空束大小举行的元素数量。
参数:捆绑的初始容量
4 public Bundle (Bundle b)
功能:构造一个包,包含给定包的映射的副本。
参数:要复制的捆绑Parameters
b a Bundle to be copied.
公共方法
1 public void clear ()
功能:从这种捆绑的映射中移除所有元素。
2 public boolean containsKey (String key)
功能:如果给定的关键是在这种捆绑的映射中,则返回true。
参数:一个字符串键
3 public int describeContents ()
功能:报告Parcelable的内容的性质
参数:一个位掩码,表示一套特殊的对象类型编组的Parcelable。
4 public Object get (String key)
功能:返回与给定键的对象的入口。
参数:一个字符串键
5 public boolean getBoolean (String key)
功能:返回与给定的密钥,或默认值相关联的,如果没有所需的类型的映射关系,给定键的存在值。
参数:
6 public boolean getBoolean (String key, boolean defaultValue)
功能:回与给定的密钥,或默认值相关联的,如果没有所需的类型的映射关系,给定键的存在值
参数
7 public boolean[] getBooleanArray (String key)
功能:返回与给定的密钥,或者为null,如果没有所需的类型映射为给定的密钥或一个空值是明确与该键关联的存在值。
参数
8 public Bundle getBundle (String key)
功能:返回与给定的密钥,或者为null,如果没有所需的类型映射为给定的密钥或一个空值是明确与该键关联的存在值。
参数
9 public byte getByte (String key)
功能:返回给定的密钥,或(字节)0,如果没有所需的类型的映射关系,给定键的存在价值。参数
10 public Byte getByte (String key, byte defaultValue)
功能:返回与给定的密钥,或默认值相关联的,如果没有所需的类型的映射关系,给定键的存在值。参数
11 public byte[] getByteArray (String key)
功能:返回与给定的密钥,或者为null,如果没有所需的类型映射为给定的密钥或一个空值是明确与该键关联的存在值。
参数
12 public char getChar (String key)
功能:返回与给定的密钥,或虚假的关联,如果没有所需的类型的映射关系,给定键的存在值。
参数
13 public char getChar (String key, char defaultValue)
功能:返回与给定键关联的值,或(char)的0,如果没有所需的类型映射给定键的存在。
参数
14 public char[] getCharArray (String key)
功能:返回与给定的密钥,或者为null,如果没有所需的类型映射为给定的密钥或一个空值是明确与该键关联的存在值。
参数
15 public CharSequence getCharSequence (String key, CharSequence
功能:
参数
16 public CharSequence getCharSequence (String key)
功能:
参数
17 public CharSequence[] getCharSequenceArray (String key)
功能:返回与给定的密钥,或者为null,如果没有所需的类型映射为给定的密钥或一个空值是明确与该键关联的存在值。
参数
18 public ArrayList<CharSequence> getCharSequenceArrayList (String key)
功能:返回与给定的密钥,或者为null,如果没有所需的类型映射为给定的密钥或一个空值是明确与该键关联的存在值。
参数:
19 public ClassLoader getClassLoader ()
功能:返回当前这种捆绑关联的ClassLoader。
参数
20 public double getDouble (String key)
功能:返回给定的密钥,或0.0,如果没有所需的类型的映射关系,给定键的存在值。
参数
21 public double getDouble (String key, double defaultValue)
功能:返回与给定的密钥,或默认值相关联的,如果没有所需的类型的映射关系,给定键的存在值。
参数
22 public double[] getDoubleArray (String key)
功能:返回与给定的密钥,或者为null,如果没有所需的类型映射为给定的密钥或一个空值是明确与该键关联的存在值。
参数
23 public float getFloat (String key)
功能:返回与给定的密钥,或0.0f相关,如果没有所需的类型的映射关系,给定键的存在的值。
参数
24 public float getFloat (String key, float defaultValue)
功能:返回与给定的密钥,或默认值相关联的,如果没有所需的类型的映射关系,给定键的存在值。
参数
25 public float[] getFloatArray (String key)
功能:返回与给定的密钥,或者为null,如果没有所需的类型映射为给定的密钥或一个空值是明确与该键关联的存在值。
参数
26 public int getInt (String key, int defaultValue)
功能:
参数
27 public int getInt (String key)
功能:
参数
28 public int[] getIntArray (String key)
功能:
参数
29 public ArrayList<Integer> getIntegerArrayList (String key)
功能:
参数
30 public long getLong (String key)
功能:
参数
31 public long getLong (String key, long defaultValue)
功能:
参数
32 public long[] getLongArray (String key)
功能:
参数
33 public T getParcelable (String key)
功能:
参数
34 public Parcelable[] getParcelableArray (String key)
功能:
参数
35 public ArrayList<T> getParcelableArrayList (String key)
功能:
参数
36 public Serializable getSerializable (String key)
功能:
参数
37 public short getShort (String key)
功能:
参数
38 public short getShort (String key, short defaultValue)
功能:
参数
39 public short[] getShortArray (String key)
功能:
参数
40 public SparseArray<T> getSparseParcelableArray (String key)
功能:
参数
41 public String getString (String key, String defaultValue)
功能:
参数
42 public String getString (String key)
功能:
参数
43 public String[] getStringArray (String key)
功能:
参数
44 public ArrayList<String> getStringArrayList (String key)
功能:
参数
45 public boolean hasFileDescriptors ()
功能:
参数
46 public boolean isEmpty ()
功能:
参数
47 public Set<String> keySet ()
功能:
参数
48 public void putAll (Bundle map)
功能:从这种捆绑捆绑插入的所有映射。
参数
49 public void putBoolean (String key, boolean value)
功能:插入一个布尔值,这个捆绑的映射取代任何现有的值给定键。无论是键或值可能为空
参数
50 public void putBooleanArray (String key, boolean[] value)
功能:布尔数组插入到这个包的映射值,给定键的替换任何现有的值。无论是键或值可能为空。
参数
51 public void putBundle (String key, Bundle value)
功能:插入到这个包的映射束值,给定键的替换任何现有的值。无论是键或值可能为空。
参数
52 public void putByte (String key, byte value)
功能:
参数
53 public void putByteArray (String key, byte[] value)
功能:
参数
54 public void putChar (String key, char value)
功能:
参数
55 public void putCharArray (String key, char[] value)
功能:
参数
56 public void putCharSequence (String key, CharSequence value)
功能:
参数
57 public void putCharSequenceArray (String key, CharSequence[] value) 功能:
参数
58 public void putCharSequenceArrayList (String key, ArrayList<CharSequence> value)
功能:插入一个ArrayList值映射到这个捆绑的,给定键的替换任何现有的值。无论是键或值可能为空。
参数
59 public void putDouble (String key, double value)
功能:
参数
60 public void putDoubleArray (String key, double[] value)
功能:
参数
61 public void putFloat (String key, float value)
功能:
参数
62 public void putFloatArray (String key, float[] value)
功能:
参数
63 public void putInt (String key, int value)
功能:
参数
64 public void putIntArray (String key, int[] value)
功能:
参数
65 public void putIntegerArrayList (String key, ArrayList<Integer> value)
功能:
参数
66 public void putLong (String key, long value)
功能:
参数
67 public void putLongArray (String key, long[] value)
功能:
参数
68 public void putParcelable (String key, Parcelable value)
功能:
参数
69 public void putParcelableArray (String key, Parcelable[] value)
功能:插入到这个包的映射Parcelable值,给定键的替换任何现有的值。无论是键或值可能为空。
参数
70 public void putParcelableArrayList (String key, ArrayList<? extends Parcelable> value)
功能:
参数
71 public void putSerializable (String key, Serializable value)
功能:这种捆绑的映射插入到序列化的值,给定键的替换任何现有的值。无论是键或值可能为空。
参数
72 public void putShort (String key, short value)
功能:
参数
73 public void putShortArray (String key, short[] value)
功能:
参数
74 public void putSparseParcelableArray (String key, SparseArray<? extends Parcelable> value)
功能:
参数
75 public void putString (String key, String value)
功能:
参数
76 public void putStringArray (String key, String[] value)
功能:
参数
77 public void putStringArrayList (String key, ArrayList<String> value)
功能:
参数
78 public void readFromParcel (Parcel parcel)
功能:
参数
79 public void remove (String key)
功能:
参数
80 public void setClassLoader (ClassLoader loader)
功能:
参数
81 public int size ()
功能:
参数
82 public synchronized String toString ()
功能:
参数
83 public void writeToParcel (Parcel parcel, int flags)
功能:捆绑内容写入到一个包裹,通常它是通过IBinder连接通过。
参数
范例
(1)新建一个bundle类
Bundle mBundle = new Bundle();
(2)bundle类中加入数据(key -value的形式,另一个activity里面取数据的时候,就要用到key,找出对应的value)
mBundle.putString("Data", "data from TestBundle");
(3)新建一个intent对象,并将该bundle加入这个intent对象
Intent intent = new Intent();
intent.setClass(TestBundle.this, Target.class);
Bundle mBundle = new Bundle();
mBundle.putString("Data", "data from TestBundle");//压入数据
intent.putExtras(mBundle);
startActivity(intent);
(4)
Bundle bundle = getIntent().getExtras();//得到传过来的bundle
String data = bundle.getString("Data");//读出数据