我有这样的枚举
enum Status {READY, DISCONNECTED, RECEIVING, ... more }
我想通过Bundle将此枚举的值发送到另一个线程。
另一个线程想要从Bundle中提取枚举值,
如何巧妙地完成这项工作?
Bundle createBundle(Status status);
和
Status getStatus(Bundle b);
谢谢,
答案 0 :(得分:32)
由于Enum是可序列化的,我们可以使用以下命令将枚举打包到包中:
public static String MY_ENUM = "MY_ENUM";
myBundle.putSerializable(MY_ENUM, enumValue);
要检索,请使用:
MyEnum myEnum = (MyEnum) myBundle.getSerializable(MY_ENUM);
答案 1 :(得分:12)
好问题!我不知道直接打包枚举的方法。我总是用它打包:
int intValue = myEnum.ordinal();
然后解压缩:
MyEnum enumValue = MyEnum.values()[intValue];