我有一个Activity类。在onCreate
中找到我需要的所有视图应该非常好,然后只需引用这些字段,而无需调用findViewById
。但这样做可以吗?
在运行时无法为视图分配不同的对象?例如,findViewById(res1) == findViewById(res1)
在任何时候都是真的吗?
答案 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。
为成员变量添加前缀这有帮助吗?