如何将枚举列表传递给片段?

Nik*_*Nik 1 enums android bundle arraylist fragment

如何通过捆绑包将枚举列表传递给片段?我可以通过 putSerialisable 传递单个 Enum。但不是枚举列表。

Ale*_*ich 7

假设您有这样的枚举:

enum SimpleEnum {
  ONE ,TWO, THREE
}
Run Code Online (Sandbox Code Playgroud)

然后你可以做这样的事情:

    ArrayList<String> enums = new ArrayList<>();
    enums.add(SimpleEnum.ONE.name());
    enums.add(SimpleEnum.TWO.name());
    Bundle args = new Bundle();
    args.putStringArrayList("enums", enums);
Run Code Online (Sandbox Code Playgroud)

要检索枚举,请使用以下命令:

List<String> enums = args.getStringArrayList("enums");

for (String enumName : enums) {
    SimpleEnum e = SimpleEnum.valueOf(enumName);
}
Run Code Online (Sandbox Code Playgroud)