我是个效率狂(我相信你们中的很多人也是),我想知道这个问题有一段时间了,只是想提出这个问题:
两种情况,可能有两种不同的答案。
如果我循环遍历项目列表并更新 LinearLayout 中的一堆 EditText,这两种方法的优缺点是什么: 1)
for (int i = 0; i < itemList.size(); i++) {
((TextView)findViewById(itemList.get(i).getId())).setText(itemList.getText());
((TextView)findViewById(itemList.get(i).getId())).setColor(itemList.getColor());
}
2)
TextView tv;
for (int i = 0; i < itemList.size(); i++) {
tv = ((TextView)findViewById(itemList.get(i).getId()));
tv.setText(itemList.getText());
tv.setColor(itemList.getColor());
}
我认为潜在的问题是“findViewById”的效率如何?这可能很挑剔,我认为 2) 是更好的解决方案。谢谢!
最佳答案
使用第二个选项,您可以保存: - 调用 findViewById() - 调用 itemList.get(i) - 调用 [itemList.get(i)] getId()
另外,请注意,在 for 循环中,通常向后执行比向前执行要快一点(更优化)(因为 i < value 转换为 i-value < 0,这比 i > 0 更昂贵)。
关于android - 重复使用 "findViewById"还是存储View?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26869490/