当前位置: 首页 > 知识库问答 >
问题:

Android ListView。如何更改手动选定项目的背景色

田马鲁
2023-03-14

你能帮帮我吗。我需要更改我的列表视图项目的背景色,该项目由setSelection(int pos)功能手动选择,我需要保留新颜色,直到调用新的setSelection。我读过一些关于如何做到这一点的主题,但仍然没有成功。谢谢

共有2个答案

吉嘉珍
2023-03-14
listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        if (updateview != null) updateview.setBackgroundColor(Color.TRANSPARENT);
        updateview = view;
        view.setBackgroundColor(Color.CYAN);
    }
});
钱黎明
2023-03-14

我通过为不同的州做了几个选择器来做到这一点

首先把这个放在你的列表视图中

android:listSelector="@drawable/list_selector"

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

@可绘制/列表_选择器

<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>

@可绘制/列表项目背景正常

<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>

@抽屉/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_pressed和list_background添加到您的值/颜色中。xml或只是在每个文件中手动设置颜色。

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

希望有帮助。

 类似资料:
  • 我有一个清单,我在回收商的视图中展示了这一点 一些项目有蓝色背景和其他项目有灰色背景 我想编辑所选项目背景(所选项目表示已单击的项目) 这是我的适配器类

  • 我有一个这里提到的类似用例。我想将SWT表格项目选择背景颜色从默认的灰色或蓝色更改为其他颜色。我尝试使用StyledCellLabelProvider#update方法,但没有用。它只是将所有表项的背景色更新为给定的颜色。但我需要它只用于选定的项目。下面是我的标签提供程序更新方法的代码段 提前感谢您的帮助!

  • 问题内容: 我试图更改选项菜单的默认颜色为白色:我希望选项菜单上的每个项目都为黑色背景。 我已经尝试过在菜单元素中的item元素上进行类似android:itemBackground =“#000000”的拍摄,但是没有用。 我该怎么做? 问题答案: 在花费了大量时间尝试所有选项之后,我能够使用更改溢出菜单背景的应用程序的唯一方法是使用属性: ``` 从API 4.2到5.0进行了测试。

  • 问题内容: 我有一个框,当单击框并显示所有选项时,我正在尝试更改选项的背景色。 HTML: CSS: 问题答案: 你需要把对标签,而不是标签… 如果要为每个标签设置样式,请使用css 选择器:

  • 我有一个选择框,当选择框被单击并显示所有选项时,我正在尝试更改选项的背景颜色。

  • 我想改变Long Press上Card View的背景,我访问了这么多论坛,但没有人给出正确的答案。 那么,如何改变列表/卡片/回收器视图的背景,就像长按导航视图项目一样??