我可以在实例字段中存储View对象吗?

时间:2011-07-02 12:05:23

标签: java android

我有一个Activity类。在onCreate中找到我需要的所有视图应该非常好,然后只需引用这些字段,而无需调用findViewById。但这样做可以吗?

在运行时无法为视图分配不同的对象?例如,findViewById(res1) == findViewById(res1)在任何时候都是真的吗?

2 个答案:

答案 0 :(得分:1)

您可以在Activity中为视图创建实例变量。并且

findViewById(res1) == findViewById(res1)
只要布局没有再次膨胀或对内容视图进行其他更改(替换视图),

就为真。

但是不要在对象中保留对视图的引用,这些对象的持续时间比持有视图的活动长。喜欢单身人士! (见see Avoiding Memory Leaks

答案 1 :(得分:0)

是的,你可以这样做。这就是我在工作中90%的时间都看到它的表现。实施例

私人ImageView mSomeImage;

公共类活动扩展了活动{

public void onCreate(Bundle saveinstancestate){
    Inialize your views here.
}

}

只有在需要时才执行此操作,并使用m。

为成员变量添加前缀

这有帮助吗?