gpt4 book ai didi

java - 将 charSequence 元素转换为 enum 元素

转载 作者:行者123 更新时间:2023-12-01 18:03:45 24 4
gpt4 key购买 nike

在 AndroidStudio 中,我创建了一个列表,其中包含可供使用 AlertDialog.builder 选择的颜色。我将颜色存储在 charSequence 中,如下所示 CharSequence color[] = new CharSequence[] {"Red1", "Green1", "Blue1"};到目前为止,一切都很好。现在我创建了一个类 object1 ,它的枚举 Color 定义如下

     public class Object1 {
public enum Color {
Red, Green, Blue
}
private Color selectedColor;
public Object1 (Color color) {
this.selectedColor = color;
}
}

我希望每当从 AlertDialog 选择颜色时,都会使用从 AlertDialog 中选择的颜色创建 Object1 的新实例。这意味着我需要一种方法将 charSequence 转换为匹配的 Color 元素(枚举)并传递给 objecgt1 构造函数。我怎样才能做到这一点?我需要将 "Green1" 例如转换为 Object1.Color.Green 我不认为 ValueOf 方法在这里有帮助,因为 GreenGreen1 是不同的字符串谢谢

最佳答案

您可以执行以下操作来从给定的字符串中获取枚举对象。

public class Object1{

public static enum Color {
RED("Red1"), GREEN("Green1"), BLUE("Blue1");

private String type;

Color(String type) {
this.type = type;
}

public String getType() {
return type;
}

public static Color fromString(String text) {
if (text != null) {
for (Color color : Color.values()) {
if (text.equalsIgnoreCase(color.type)) {
return color;
}
}
}
return null;
}
}
}

现在如果你打电话

Object1.Color type = Object1.Color.fromString("Green1");

它将返回一个“GREEN”类型的枚举。

谢谢。

关于java - 将 charSequence 元素转换为 enum 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38543872/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com