gpt4 book ai didi

java - Android 从 findViewById 创建一个新对象 vs 类型转换一个 findViewById

转载 作者:行者123 更新时间:2023-11-30 10:51:40 26 4
gpt4 key购买 nike

我尝试在 java 中设置来自 TextView 的文本:首先我创建了一个这样的对象:

//Property info
TextView propertyInfo = (TextView) info.findViewById(R.id.info);
propertyInfo.setText(getInfo());

//production
TextView production = (TextView) info.findViewById(R.id.production);
production.setText(getProduction());

后来我尝试了同样的事情,但这次我只是转换它而不是创建一个新的对象:

//Property info
((TextView) info.findViewById(R.id.info)).setText(getInfo());

//production
((TextView) info.findViewById(R.id.production)).setText(getProduction());

在我的测试中,我发现调用第二种方法时使用的内存较少。但是,我知道为什么我想知道执行此操作的正确方法是什么,或者您是如何做到的?

最佳答案

这两种方法本质上是在做同样的事情。

如果您需要通过设置多个属性或事件来重复使用 TextView,第一种方法最好避免多次调用 findViewById。如果您需要保留对 View 的引用以便稍后以其他方法进行更新,这也是必要的。

如果您像您的情况一样只使用一次View,我个人更喜欢选项二,因为它更简洁。

还值得注意的是,在您的第一种方法中,您实际上并没有创建新的 Object。您只是将返回的 View 对象转换为与第二种方法相同的对象。

关于java - Android 从 findViewById 创建一个新对象 vs 类型转换一个 findViewById,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34623592/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com