最近项目中需要用Intent传递枚举类型的数据,以前只传递过基本类型,通过实验,发现可以使用序列化对象保存enum对象,如下内容:
bundle.putSerializable(String key , Seralizable data) ;//向Bundle放入一个可序列化的对象
举个栗子:
枚举:
/**
*水果的枚举类型
*/
public enum FRUITS{
BANANA,//香蕉
APPLE,//苹果
}
传递:
Intent enumIntent = new Intent(MainActivity.this, SecondActivity.class);
Bundle bundle = new Bundle();
bundle.putSerializable("enumType",FRUITS.BANANA);
enumIntent.putExtras(bundle); //将bundle传入intent中
startActivity(enumIntent);
接收:
bundle.getXxx(String key);//从Bundle取出Int、String等各种类型的数据
bundle.gutSerializable(String key ) //从Bundle取出一个可序列化的对象
Bundle bundle = getIntent().getExtras();
FRUITS enumType = (TabOneFragment.FRUITS)bundle.getSerializable("enumType");//这时也使用get()取出一个Object类型的对象,然后进行强制类型转化。
showToast("枚举类型:"+enumType);
结束。