gpt4 book ai didi

Android - Java 泛型 SpinnerAdapter

转载 作者:行者123 更新时间:2023-11-29 16:25:35 26 4
gpt4 key购买 nike

我正在寻找一种方法来做到这一点:

public class SimpleText_SpinnerAdapter extends ArrayAdapter<Enum1> {
many lines of code with a one moment : String val = oneEnum1val_inparam.getlabel();
}

public class SimpleText_SpinnerAdapter extends ArrayAdapter<Enum2> {
exactly the same code than previously, but for Enum2
}

public class SimpleText_SpinnerAdapter extends ArrayAdapter<Enum3> {
exactly the same code than previously, but for Enum3
}

这是为 3 个微调器设计的 3 个适配器,其中包含来自 3 个不同枚举的值,这些枚举的构造方式完全相同,但值不同。

当然,每个枚举类型都有一个 getLabel() 方法。

我想找到一种方法来执行此操作,而无需为每个适配器复制粘贴相同的代码 3 次。一种通用的,可以被 3 个专门的引用。

我找不到解决方案。你能帮我做这个吗?

或者如果你有更高效的东西......

奥利弗

最佳答案

怎么样:

public class SimpleText_SpinnerAdapter<T extends Enum<T> & ProvidesLabel>
extends ArrayAdapter<T>
{
// implementation
}



public enum Enum1 implements ProvidesLabel
{
Entry1("label 1"),
Entry2("label 2");

private final String label;

private Enum1(String label)
{
this.label = label;
}

@Override
public String getLabel()
{
return this.label;
}
}

public interface ProvidesLabel
{
String getLabel();
}

用(构造函数)实例化类:

 SimpleText_SpinnerAdapter<Enum1> enum1 =
new SimpleText_SpinnerAdapter<Enum1>(context, textViewResourceId);

关于Android - Java 泛型 SpinnerAdapter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4114786/

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