我是Android开发的新手。我一直在为我的学校项目开发这个应用程序。该应用程序基本上是一个计算器,它计算家用电器的能耗成本。在我的屏幕中,我在viewFlipper中有一堆家用电器的imageView,因此用户可以浏览图像以选择他想要计算的设备。我的问题是,如何以有效的方式为这些imageViews分配整数值(例如设备的瓦数或其规格),以便应用程序可以根据所选图像计算能耗?我使用条件语句,但它似乎是太多的编码,它浪费内存,因为我有超过40个图像视图。我应该使用Sql数据库并将设备的所有规格和图片放在一个表中,并在用户选择它时从那里调用它,或者有没有办法在xml中创建一些内容,如数组或列表?
答案 0 :(得分:2)
您可以根据自己的目的将对象分配给视图
Double energy = Double.valueOf(123.44);
imageView.setTag(energy);
...
Double energy = (Double) imageView.getTag();
这类似于ViewGroups用于存储对子视图的引用的ViewHolder模式。
答案 1 :(得分:2)
考虑创建一个扩展ImageView的类。然后,您可以将对象传递给自定义类,例如,将对象(存储所有与能源相关的数据)传递给自定义ImageView类的构造函数。如,
// The CustomView "IS-A" ImageView, so you can perform ImageView operations
// on your custom object. You can even choose to override ImageView methods.
public class CustomView extends ImageView {
Object myObj;
public CustomView(Context context, Object myObj) {
super(context);
this.myObj = myObj;
}
}
或者你可以在ImageView上设置标签。
使用40个ImageViews?如果没有正确处理内存mgmt,我预见OutOfMemoryError问题。小心!