textview-TextView设置selector修改背景色无效

问题描述

TextView设置selector修改背景色无效
<item android:drawable="@color/transparent" android:state_selected="false"></item>
<item android:drawable="@color/bg_item_list" android:state_selected="true"></item>
<TextView
    android:id="@+id/tv5"
    android:textColor="@color/white"
    android:text="本科"
    android:paddingLeft="25dp"
    android:paddingTop="10dp"
    android:paddingBottom="10dp"
    android:clickable="true"
    android:background="@drawable/selector_education"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

选中状态无效,设置state_pressed点击属性有效 可是只想要选中的状态,而且不想用button,

解决方案

你这样直接写,是无效的,你应该,先将颜色抽出来,作为一个shape,然后在selector里面引用。
1.先创建shape drawable

(1)创建选中时的背景tv_selected_bg.xml

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

(2)创建默认的背景 tv_normal_bg.xml

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

2.创建selector selector_education.xml

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

最后再是引用,就是你的TextView的代码。

 android:background="@drawable/selector_education"

解决方案二:

 <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

上面写的是<selector 吗

解决方案三:

 <item android:drawable="@color/transparent" android:state_selected="false"></item>
<item android:drawable="@color/bg_item_list" android:state_selected="true"></item>
<item android:drawable="@color/bg_item_list" android:state_focused="true"></item>

解决方案四:

换成android:state_pressed 试试

解决方案五:

http://blog.csdn.net/shakespeare001/article/details/7788400/

解决方案六:

解决方案七:

解决方案八:

http://blog.csdn.net/huangbiao86/article/details/6707111

解决方案九:

http://blog.csdn.net/huangbiao86/article/details/6707111

时间: 2024-12-09 00:55:31

textview-TextView设置selector修改背景色无效的相关文章

Android使用selector修改TextView中字体颜色和背景色的方法_Android

本文实例讲述了Android使用selector修改TextView中字体颜色和背景色的方法.分享给大家供大家参考,具体如下: android中的selector大家都很熟悉了,用它可以很方便的实现,控件在不同的动作中,颜色等值的变化.这里我说一下TextView中的一些应用. 我想大家都知道,Button按钮在源码上看是一种特殊的TextView,所以我们很多时候,按钮全是使用的TextView来完成,只要加一个android:clickable="true"就可以了. TextVi

Android编程开发之TextView文字显示和修改方法(附TextView属性介绍)_Android

本文实例讲述了Android编程开发之TextView文字显示和修改方法.分享给大家供大家参考,具体如下: 一. 新建一个Activity 和 Layout 首先在layout文件夹中新建一个activity_main.xml,在新建工程的时候一般默认会新建此xml文件,修改其代码如下: activity_main.xml 代码 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" x

Android编程开发之TextView文字显示和修改方法(附TextView属性介绍)

本文实例讲述了Android编程开发之TextView文字显示和修改方法.分享给大家供大家参考,具体如下: 一. 新建一个Activity 和 Layout 首先在layout文件夹中新建一个activity_main.xml,在新建工程的时候一般默认会新建此xml文件,修改其代码如下: activity_main.xml 代码 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" x

textview-在 TextView 上设置文字格式

问题描述 在 TextView 上设置文字格式 在一个linearlayout中有两个textview.在一个textview中,text包含21个字符.在另一个textview中,text中包含12个字符.第一个textview用两行显示,第二个textview只在一行显示.我想要两个textview文本显示的形式是相同的,不论是一行显示还是两行显示.如何实现呢? <LinearLayout android:layout_width="fill_parent" android:

android textview字体设置

问题描述 android textview字体设置 我想这样设置.比如说我的textview1里面有5个汉字,第一种效果:将textview1设置成占6个汉字的宽度 第二种效果:textview1的正下面试textview2,textview1有5个汉字,textview2有 4个汉字,可不可以让textview2的汉字和textview1的第一个汉字对齐,让textview2的最后一个汉字和textview1的最后一个汉字对齐.我想要这两种效果,那位大师指点下. 解决方案 可以用android

android-关于在TextView中设置DrawableLeft的问题

问题描述 关于在TextView中设置DrawableLeft的问题 xml中的textView: <TextView android:id="@+id/bookTitle" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:drawableLeft=&quo

slidingmenu-SlidingMenu中的TextView不能设置点击事件,也不能set新的值

问题描述 SlidingMenu中的TextView不能设置点击事件,也不能set新的值 在SlidingMenu的布局中设置了几个TextView,但是要在程序中设置点击事件或者动态set新的值进去都不行 解决方案 private void initSlidingMenu() { LayoutInflater inflater = getLayoutInflater().from(this); View view = inflater.inflate(R.layout.sliding_menu

android:TextView简单设置文本样式和超链接的方法_Android

本文实例讲述了android:TextView简单设置文本样式和超链接的方法.分享给大家供大家参考,具体如下: 设置TextView中文本的样式(如:颜色.斜体等),可以针对不同位置的文本设置不同的样式(如:将索引范围在1-3的字符设置为黑色,2-6的字符设置为粗体等) myFirstTextView = (TextView)findViewById(R.id.myFirstTextView); myFirstTextView.setText("这是我的第一个TextView,嘿嘿"

android:TextView简单设置文本样式和超链接的方法

本文实例讲述了android:TextView简单设置文本样式和超链接的方法.分享给大家供大家参考,具体如下: 设置TextView中文本的样式(如:颜色.斜体等),可以针对不同位置的文本设置不同的样式(如:将索引范围在1-3的字符设置为黑色,2-6的字符设置为粗体等) myFirstTextView = (TextView)findViewById(R.id.myFirstTextView); myFirstTextView.setText("这是我的第一个TextView,嘿嘿"