This question already has an answer here:
Lint error “Do not treat position as fixed; only use immediately…”
(1 个回答)
4年前关闭。
这是我的代码 -
我收到警告
所以我对 1 和 2 感到困惑,我应该更喜欢哪个,为什么?正如它所说的 getAdapterPosition() 提供更新的位置,我正在根据位置从列表中获取值。
谢谢你。
你不需要在你的持有人中保存位置,因为它的位置可以改变,你总是可以通过调用
从文档:
关于使用:
如果在
(1 个回答)
4年前关闭。
这是我的代码 -
public void onBindViewHolder(myViewHolder holder, int position) {
//1. details obj = list.get(holder.getAdapterPosition());
//2. details obj = list.get(position);
holder.position = position;
}
我收到警告
所以我对 1 和 2 感到困惑,我应该更喜欢哪个,为什么?正如它所说的 getAdapterPosition() 提供更新的位置,我正在根据位置从列表中获取值。
谢谢你。
最佳答案
您收到的警告与使用 position
或 getAdapterPosition()
无关。这是关于保存位置:
holder.position = position;
你不需要在你的持有人中保存位置,因为它的位置可以改变,你总是可以通过调用
holder.getAdapterPosition()
来获取它的位置;从文档:
关于使用:
如果在
onBindViewHolder
方法中调用,两者都应该返回相同的结果。我建议使用 position
因为它最简单和最安全。关于java - holder.getAdapterPosition() 和 onBindViewHolder() 中构造函数的 position 属性有什么区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38970193/
10-10 04:38