android 数据传递详解(Serialization、Parcelable、Parcel、Intent、Bundle)
第一、四大组件间数据传递方式:
启动四大组件通过Intent对象来实现,Intent的功能包括启动四大组件以及相关信息+传递数据。
其中传递数据Intent提供了putExtra和对应的getExtra方法来实现:
putExtra和getExtra 其实是和Bundle put和get方法一一对应的,在Intent类中有一个Bundle的mExtras成员变量
所有的putExtra和getExtra方式实际是调用mExtras对象的put和get方法进行存取。
所以正常情况下 四大组件间传递数据直接通过putExtra和getExtra方法存取即可,无需再创建一个bundle对象。
Intent putExtra方法:
Intent putExtra(String name, Bundle value)
Intent putExtra(String name, Parcelable[] value)
Intent putExtra(String name, Serializable value)
Intent putExtra(String name, Parcelable value)
Intent putExtra(String name, int[] value)
Intent putExtra(String name, float value)
Intent putExtra(String name, byte[] value)
Intent putExtra(String name, long[] value)
Intent putExtra(String name, float[] value)
Intent putExtra(String name, long value)
Intent putExtra(String name, String[] value)
Intent putExtra(String name, boolean value)
Intent putExtra(String name, boolean[] value)
Intent putExtra(String name, short value)
Intent putExtra(String name, double value)
Intent putExtra(String name, short[] value)
Intent putExtra(String name, String value)
Intent putExtra(String name, byte value)
Intent putExtra(String name, char[] value)
Intent putExtra(String name, CharSequence[] value)
Intent putExtras(Intent src)
Intent putExtras(Bundle extras)
Intent putIntegerArrayListExtra(String name, ArrayList<Integer> value)
Intent putParcelableArrayListExtra(String name, ArrayList<? extends Parcelable> value)
Intent putStringArrayListExtra(String name, ArrayList<String> value)
Intent getExtra方法:
double[] getDoubleArrayExtra(String name)
double getDoubleExtra(String name, double defaultValue)
Bundle getExtras()
int getFlags()
float[] getFloatArrayExtra(String name)
float getFloatExtra(String name, float defaultValue)
int[] getIntArrayExtra(String name)
int getIntExtra(String name, int defaultValue)
Android开发教程,Android自学,青软培训