gpt4 book ai didi

安卓 ListView 。如何更改手动选择的项目的背景颜色

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:21:18 30 4
gpt4 key购买 nike

你能帮帮我吗?我需要更改由 setSelection(int pos) 函数手动选择的 ListView 项目的背景颜色,并且我需要保持新颜色直到新的 setSelection 调用。我已经阅读了一些关于如何做到这一点的主题,但我仍然没有成功。谢谢!

最佳答案

我已经通过为不同的状态制作多个选择器来实现这一点

首先把它放在你的 ListView 中

android:listSelector="@drawable/list_selector"

然后在drawable中创建xml文件来控制不同的状态

@drawable/list_selector

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/list_item_bg_normal" android:state_activated="false"/>
<item android:drawable="@drawable/list_item_bg_pressed" android:state_pressed="true"/>
<item android:drawable="@drawable/list_item_bg_pressed" android:state_activated="true"/>
</selector>

@drawable/list_item_bg_normal

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:startColor="@color/list_background"
android:endColor="@color/list_background"
android:angle="90" />
</shape>

@drawable/list_item_bg_pressed

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:startColor="@color/list_background_pressed"
android:endColor="@color/list_background_pressed"
android:angle="90" />
</shape>

在您的 ListView 选择中

listView.setOnItemClickListener(new OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> parent, View view, int position,long arg3) {
view.setSelected(true);
...
}
}

不要忘记将 list_background_pressedlist_background 添加到您的 values/color.xml 或在每个文件中手动设置颜色。

而且我相信,当您使用 setSelection(int pos) 时,它会自动使用您设置为选中的布局。

希望对您有所帮助。

关于安卓 ListView 。如何更改手动选择的项目的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21253371/

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