我想在Bundle中打包一个枚举值并得到枚举

时间:2012-11-14 18:29:55

标签: android

我有这样的枚举

  enum Status {READY, DISCONNECTED, RECEIVING, ... more }

我想通过Bundle将此枚举的值发送到另一个线程。

另一个线程想要从Bundle中提取枚举值,

如何巧妙地完成这项工作?

   Bundle createBundle(Status status);

   Status getStatus(Bundle b);

谢谢,

2 个答案:

答案 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];