android - 如何在android中设置ListView选中的item alternet文本颜色

标签 android android-listview

我有一个带有 ImageView 和 TextView 的自定义 ListView 。我希望当用户选择一个项目时,textview 颜色应该改变,所有其他 textview 应该保持默认。

这是我的 xml

ListView .xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ListView
        android:id="@+id/listViewBell"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:cacheColorHint="#00000000"
        android:choiceMode="singleChoice"
        android:divider="#b5b5b5"
        android:dividerHeight="1dp"
        android:listSelector="@drawable/list_selector" />

</LinearLayout>

ListViewItems.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:padding="5dip" >

    <TextView
        android:id="@+id/txt_bell_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:text="@string/rihanna_love_the_way_lie"
        android:textColor="@color/black"
        android:textSize="15sp"
        android:textStyle="bold"
        android:typeface="sans" />

    <ImageView
        android:id="@+id/list_bell_image"
        android:layout_width="50dip"
        android:layout_height="50dip"
        android:src="@drawable/bronze_bell" />
</RelativeLayout>

最佳答案

在drawable中创建如下button_text.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"
          android:color="#ffff0000"/> <!-- pressed -->
    <item android:state_focused="true"
          android:color="#ff0000ff"/> <!-- focused -->
    <item android:color="#ff000000"/> <!-- default -->
</selector>

将 TextView 的 textColor 更改为:

  <TextView
        android:id="@+id/txt_bell_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:text="@string/rihanna_love_the_way_lie"
        android:textColor="@color/button_text" //point to that xml
        android:textSize="15sp"
        android:textStyle="bold"
        android:typeface="sans" />

您可以阅读有关颜色状态列表的信息 here

关于android - 如何在android中设置ListView选中的item alternet文本颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21451996/

相关文章:

android - 在 Android : how to use gluUnProject? 上打开 GL ES

java - android:layout_gravity ="end"在真实设备中编译时不工作

android - 导出已签名的 apk 时出错 - Dalvik 格式失败,出现错误 1

android - Android Webview 如何将数据发布到 application/x-www-form-urlencoded

php - 将云数据库中的许多数据处理到 Listview 的最佳实践?

android - 使用适配器的多个 ListView

java - 通过选择模式在 ListView 中添加条目

android - 如何使我的 Delphi 代码与多个平台兼容?

android - 根据行创建具有不同类型适配器的 View

android - 我的应用程序中的致命异常