gpt4 book ai didi

java - 单击时更改 ListView 项目背景

转载 作者:太空狗 更新时间:2023-10-29 13:30:59 25 4
gpt4 key购买 nike

我有一个 ListView ,我希望当我单击一行时,它的背景变为蓝色。我使用这段代码:

listView1.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// TODO Auto-generated method stub
parent.getChildAt(position).setBackgroundColor(Color.BLUE);
}

});

这有些错误。当我点击第一个项目时,它变成了蓝色,但是项目#3 和#5 也变成了蓝色!!!我不明白为什么!我只想让选定的项目变成蓝色!!!

最佳答案

如何使用选择器?它们正常工作并提供干净的解决方案。

listselector.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_selected="false"
android:state_pressed="false"
android:drawable="@drawable/normal" />

<item
android:state_selected="true"
android:state_focused="false"
android:drawable="@drawable/hover"
/>

<item
android:state_selected="true"
android:state_pressed="false"
android:drawable="@drawable/hover" />
</selector>

normal.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
>
<solid
android:color="#cccccc"
/>
</shape>

hover.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
>
<solid
android:color="#dddddd"
/>
</shape>

一个用法

<ListView
android:id="@+id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:listSelector="@drawable/listselector"
/>

关键属性是为您的 ListView 设置 android:listSelector="@drawable/listselector"

注意事项:

您可以在形状中使用渐变属性而不是纯色。更多细节你也可以看教程Android Custom ListView .

关于java - 单击时更改 ListView 项目背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15439466/

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