提问人:Victorfori 提问时间:11/18/2020 更新时间:11/18/2020 访问量:23
为什么我的 ListView 只创建可见的子元素?
Why does my ListView only create the child elements which are visible?
问:
我正在尝试制作一个应用程序,该应用程序包括按特定顺序猜测某些单词。
我在右边有 16 个按钮,每个按钮都有一个相关的单词。当我单击正确的按钮时,ListView 中的单词会变为灰色。我遇到的问题是,当我在 listView 中滚动并单击正确的按钮时,getChildAt 方法从第一个可见元素开始计数,而不是从列表视图的开头开始计数;我不知道如何解决它。
我正在使用 ArrayAdapter。
这是我设置适配器的地方:
// frutasLista is the array with the String elements that I want to add to the list.
((ListView) activity.findViewById(R.id.listaFrutas)).setAdapter(
new ArrayAdapter<>(activity, android.R.layout.simple_list_item_1, frutasLista)
);
这是我将当前元素颜色设置为灰色的地方:
// contAciertos Is the counter where I save how many word the user guessed right.
((TextView) ((ListView) activity.findViewById(R.id.listaFrutas)).getChildAt(contAciertos)).setTextColor(Color.GRAY);
contAciertos++;
当我单击正确的元素并且我没有进行任何滚动时,它应该正常工作 第一种情况
但是,如果我滚动并再次单击第一个正确的元素,就会发生这种情况: 第二种情况
我向下滚动到“Platano”并单击了第一个正确的元素,即“Cereza”。而不是像我尝试的那样将 ListView 的第一个元素变成灰色。它改变了那一刻的第一个可见元素,即“普拉塔诺”。
提前致谢。 对不起,如果没有清楚地解释自己。
答: 暂无答案
评论
getView()