0

我是android开发的新手。我一直在为我的学校项目开发这个应用程序。该应用程序基本上是一个计算器,用于计算家用电器的能源消耗成本。在我的屏幕上,我的 viewFlipper 中有一堆家用电器的图像视图,因此用户可以浏览图像以选择他想要计算的电器。我的问题是,如何以有效的方式为这些 imageViews 分配整数值(例如设备的瓦特或其规格),以便应用程序可以根据所选图像计算能耗?我使用条件语句,但它似乎编码太多并且浪费内存,因为我有超过 40 个图像视图。

4

2 回答 2

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 个 ImageView?如果没有正确处理内存管理,我预见到 OutOfMemoryError 问题。当心!

于 2012-04-26T19:42:50.160 回答
2

您可以为自己的目的将对象分配给视图

Double energy = Double.valueOf(123.44);
imageView.setTag(energy);
...
Double energy = (Double) imageView.getTag();

这类似于ViewGroups 用于存储对子视图的引用的ViewHolder模式。

于 2012-04-26T19:41:10.060 回答