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

Ahm*_*med 12 android

我有这样的枚举

  enum Status {READY, DISCONNECTED, RECEIVING, ... more }
Run Code Online (Sandbox Code Playgroud)

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

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

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

   Bundle createBundle(Status status);
Run Code Online (Sandbox Code Playgroud)

   Status getStatus(Bundle b);
Run Code Online (Sandbox Code Playgroud)

谢谢,

mut*_*kid 33

由于Enum是可序列化的,我们可以使用以下命令将枚举打包到包中:

public static String MY_ENUM = "MY_ENUM";
myBundle.putSerializable(MY_ENUM, enumValue);
Run Code Online (Sandbox Code Playgroud)

要检索,请使用:

MyEnum myEnum = (MyEnum) myBundle.getSerializable(MY_ENUM);
Run Code Online (Sandbox Code Playgroud)


Tod*_*der 12

好问题!我不知道直接打包枚举的方法.我总是用它来打包:

int intValue = myEnum.ordinal();
Run Code Online (Sandbox Code Playgroud)

然后这解压:

MyEnum enumValue = MyEnum.values()[intValue];
Run Code Online (Sandbox Code Playgroud)