gpt4 book ai didi

java - 将对象添加到 ListView - ANDROID

转载 作者:行者123 更新时间:2023-12-01 15:08:23 24 4
gpt4 key购买 nike

我有一个对象数组:

Tratam --> 有 String、int 等.. 和一个 Date 对象。

我想向 ArrayList 添加 3 个相同的对象,每个对象具有不同的日期值..

我安排了以下代码,但结果在数组列表中总是添加最后日期的对象。例如:如果日期必须是 3:05、3:15 和 3:25,则添加带有最后日期的对象第三个值。

有人知道我做错了什么吗?

提前致谢!!!

for(n=0;n<tam;n++){
addObj(arrayObj[n]);
}


public void addObj(Tratam trat){
Tratam [] arrayObj2 = new Tratam[3];
Date date=trat.getNextTime();
for(int n=0;n<3;n++){
arrayObj2[n]=trat;
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.SECOND, interval);
date=cal.getTime();
arrayObj2[n].setNextTime(date);

arrayListTrat.add(arrayObj2[n]);
}

}

最佳答案

对代码的简单检查告诉我,您正在列表中再次添加相同的对象。这就是为什么你们得到相同的时间。

这就是我所做的检查。

public void addObj(Tratum trat) {
Tratum[] arrayObj2 = new Tratum[3];
Date date = trat.getNextTime();
for (int n = 0; n < 3; n++) {
arrayObj2[n] = trat; // I think this line is the culprit
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.SECOND, n + 1000 * n);
date = cal.getTime();
Log.d("inTemp","" + date.toString());

arrayObj2[n].setNextTime(date);
if(n ==1){
if(arrayObj2[n].equals(arrayObj2[n-1])){
Log.d("TEMP","$$Equal");
}
}
arrayListTrat.add(arrayObj2[n]);
}

试试这个:

而不是这样做。

arrayObj2[n] = trat;

尝试这样做,

arrayObj2[n] = new Tratum();
arrayObj2[n].setNextDate(trat.getNextDate()); // In short rather than assigning object trat to your array object. Simply assign values.

这应该可以解决您的问题。

关于java - 将对象添加到 ListView - ANDROID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12658225/

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