gpt4 book ai didi

java - 动态构建类并将它们添加到 ArrayAdapter

转载 作者:行者123 更新时间:2023-12-02 04:28:00 29 4
gpt4 key购买 nike

我有一个填充数据“neededRepData”的列表,我正在尝试将此列表添加到我的适配器中,但遇到了问题。下面是我的 Reps 类和我的方法(来自另一个类)来迭代所需的 RepData。

public class Reps {
public int icon;
public String title;

public Reps() {
super();
}

public Reps(int icon, String title) {
super();
this.icon = icon;
this.title = title;
}
}

List<Reps> listOfReps = new ArrayList<Reps>();
for (int i = 0; i < neededRepData.size(); i++) {
String currentRep = neededRepData.get(i);
listOfReps.add(new Reps(R.drawable.unknown_representative, currentRep));
}

此时,我的 listOfReps 已包含我期望的所有内容。但是,当我创建适配器时,我被迫执行以下操作。

Reps customRepData[] = new Reps[]{
new Reps(listOfReps.get(0).icon, listOfReps.get(0).title)
};

LocalRepAdapter adapter = new LocalRepAdapter(this, R.layout.mylist, customRepData);

我想将动态创建的 customRepData[] 对象传递到我的适配器中,我看不到在 customRepData[] 的构造中循环的方法,也许有更好的方法?

我的扩展 ArrayAdapter 类如下所示:

public class LocalRepAdapter extends ArrayAdapter<Reps> {

Context context;
int layoutResourceId;
Reps data[] = null;

public LocalRepAdapter(Context context, int layoutResourceId, Reps[] data) {
super(context, layoutResourceId, data);
this.layoutResourceId = layoutResourceId;
this.context = context;
this.data = data;
} ......

谢谢。

最佳答案

您被迫创建类数组Reps customRepData[],因为适配器的构造函数采用类数组,但您可以轻松地将其更改为

public LocalRepAdapter(Context context, int layoutResourceId, ArrayList<Reps> list)

因此您不再需要Reps customRepData[],您只需将listOfReps传递给它即可

LocalRepAdapter adapter = new LocalRepAdapter(this, R.layout.mylist, listOfReps);

关于java - 动态构建类并将它们添加到 ArrayAdapter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31902376/

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