gpt4 book ai didi

java - 如何在 android 上的 onListItemClick 方法中为 ListView 的选定项目着色

转载 作者:行者123 更新时间:2023-12-01 11:07:22 25 4
gpt4 key购买 nike

我知道存在熟悉的问题,但我的有点不同。我正在 Android 上实现 ListView。此方法应在单击项目时为其着色。

@Override
protected void onListItemClick(ListView l, View v, int position, longid) {
super.onListItemClick(l, v, position, id);
Language lng = lng.get(position);
l.getChildAt(position).setBackgroundColor(Color.GREEN);
}

我的问题是,当我单击项目时,其他一些项目会被着色。为什么会发生这种情况?

最佳答案

why is that happens?

它的发生是因为 ListView's recycling mechanism .

And is there a difference between l.getChildAt(position) to view v itself ?

没有。

<小时/>

为了解决您的问题,我建议您使用Selector根据状态更改行颜色。

例如:

1) 创建选择器 xml 文件:listview_selector.xml

 <?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android" >

<item
android:state_focused="true"
android:drawable="@drawable/listview_selector_focused" />

<item
android:state_pressed="true"
android:drawable="@drawable/listview_selector_pressed" />

</selector>

2) 将选择器添加到 ListView:

<ListView
...
android:listSelector="@drawable/listview_selector"
/>

关于java - 如何在 android 上的 onListItemClick 方法中为 ListView 的选定项目着色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32803457/

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