gpt4 book ai didi

java - 单击 ListView 项时出现 NullPointerException

转载 作者:行者123 更新时间:2023-12-01 18:54:37 25 4
gpt4 key购买 nike

我有一个 ListView 并设置了 onItemClickListener:

@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// not important
if (!found) {
activity.addSelectedIngredient(ingred);
parent.getChildAt(position).setBackgroundColor(Color.parseColor("#ff99FE80"));
} else {
activity.removeSelectedIngredient(ingred);
parent.getChildAt(position).setBackgroundColor(Color.WHITE);
}
}

当父级在选定位置(例如 15)上没有子级时,会引发 NullPointerException。为什么?如果她已经选择了该元素,该元素怎么可能不存在?

编辑:

if (!found) {
activity.addSelectedIngredient(ingred);
view.setBackgroundColor(Color.parseColor("#ff99FE80"));
} else {
activity.removeSelectedIngredient(ingred);
view.setBackgroundColor(Color.WHITE);
}

最佳答案

getChildAt 返回 listView 的 subview 。 getChildAt 位置与适配器中的位置不同。您的适配器中可以有 1000 个项目,而 ListView 中只能有几个 subview ,因为 View 正在重用。

我认为你应该改变

parent.getChildAt(position).setBackgroundColor(Color.WHITE);

view.setBackgroundColor(Color.WHITE);

关于java - 单击 ListView 项时出现 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14510346/

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