Android:如何在arraylist中更新对象的变量

时间:2012-09-27 14:41:43

标签: java android arraylist

我创建了一个包含Currency对象的ArrayList(货币有名称和价格) 我还创建了扩展baseAdapter和应用程序类的类。 因此,每次我将Currency添加到列表中时,它都会使用以下代码遍历应用程序类:

getApplicationClass().addCurrency(currency);

然而,货币价格不断更新 所以我想知道如何更新货币价格?我可以从库中使用任何功能吗?

(ArrayList在应用程序类中)

1 个答案:

答案 0 :(得分:0)

虽然可以保留Application类中的货币列表以便显示该列表,但该列表也必须位于BaseAdapter的子类中。通过Application类向列表添加货币时,您绕过了UI正在侦听的BaseAdapter子类。如果您在Application类上调用addCurrency()方法时将BaseAdapter的子类连接到UI,则UI将不会看到这些更改。相反,最好通过BaseAdapter子类添加,以便它可以调用notifyDataChanged(),以便UI知道更改。此外,因为它包含对Application类中相同实例的引用(我假设这是你已经完成的),所以Application引用也将被更新。

如果特定货币的价格发生变化,您只需要调用BaseAdapter子类上的notifyDataChanged(),告诉UI重绘,因为支持模型中的某些内容已经更改。

在不知道程序的更多细节的情况下,这是我可以给出的所有建议,我也在做一些关于你正在做什么的假设(即Application类中的ArrayList是给BaseAdapter子类的相同实例 - 不是副本)。