当前位置:   article > 正文

Android开发之ListView选中某行后改变其背景色_listview 选中行颜色

listview 选中行颜色

Android开发之ListView选中背景色

一、在ListView中手指按下选中某一行时,更换选中那一行的背景色,放开之后恢复原来的背景色

首先在项目的res路径下的drawable文件中创建一个xml文件(如果没有drawable文件自己新建一个),然后在此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="@color/colorlvBtn"></item>
    <item android:state_pressed="true" android:drawable="@color/colorlvBtn"/>
</selector>
  • 1
  • 2
  • 3
  • 4
  • 5

这两句代码的意思就是:当ListView中的某一行为焦点时,以及你触碰某一行时,改变此行的背景色。

当然,其中的@color后面的代码也是个xml文件,需要在其他地方定义,我是在drawable同级目录下创建了一个叫values的文件夹,然后在此文件夹中创建了colors.xml的文件(正常来说项目新建后会有这个文件),代码如下:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="colorPrimary">#3F51B5</color>
    <color name="colorPrimaryDark">#303F9F</color>
    <color name="colorAccent">#FF4081</color>
    <color name="colorlvBtn">#FF9900</color>
    <color name="colorlvBtnBehind">#0000</color>
</resources>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

这样的好处是方便后期管理。

最后,在你需要改变背景色的ListView中加入:

android:listSelector="@drawable/listview_button"
  • 1

这个属性(listview_button是你最开始创建的xml文件),然后你就会发现你触摸某一行之后背景色就会改变,放开时背景色又变回来了。

二、按下ListView的某一行之后,改变其背景色,但不恢复到原来的背景色。
要实现这个效果也很简单,你只需在listview的点击事件中:

listview.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView<?> arg0, View arg1,int index, long arg3)
    {
        listview.setSelector(R.color.colorlvBtn);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

核心代码如下:

//设置选中行的背景色
listview.setSelector(R.color.colorlvBtn);
  • 1
  • 2

当然,colorlvBtn也是个xml文件,具体创建方法上面已列出。然后,在你点击某一行后,那一行的背景色就会发生改变,且不会再变回原来的背景色。

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号