【问题标题】:android: customized text selectorandroid:自定义文本选择器
【发布时间】:2011-02-17 00:19:31
【问题描述】:

我想设计一个自定义的文本选择器,当用户单击 TextView 时改变文本颜色。但出现以下错误:

java.lang.RuntimeException: Unable to start Activity ComponentInfo{}: android.view.InflateException: Binary XML file line #55: Error inflating class

这是我所拥有的: 可绘制/text_selector.xml

    <selector xmlns:android="http://schemas.android.com/apk/res/android"> 
  <item android:state_enabled="false" 
        android:state_focused="true" 
        android:drawable="@color/black" /> 
  <item android:state_pressed="true" 
        android:drawable="@color/blue" /> 
  <item android:state_focused="true" 
        android:drawable="@color/black" /> 
</selector> 

布局/textview.xml

<TextView android:id = "@+id/last_page_button"
    android:text="@string/last_page_button_string" 
    android:gravity="center_horizontal"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:background="#ffffff"
    android:textColor = "@drawable/text_selector"
    android:layout_weight="1" />

值/color.xml

<resources> 
    <color name="white">#ffffffff</color> 
    <color name="black">#ff000000</color> 
    <color name="blue">#ffccddff</color>

【问题讨论】:

    标签: android colors selector textview


    【解决方案1】:

    您不能将 drawable 分配给 textColor。它必须是一种颜色。

    <selector
        xmlns:android="http://schemas.android.com/apk/res/android">
        <item
            android:state_selected="true"
    
            android:color="@color/color1" />
        <item
            android:color="@color/color2" />
    </selector>
    

    在你的 res 中创建一个文件夹颜色,将此文件保存为 mycolor.xml 并将其分配给 textColor 作为@color/mycolor

    【讨论】:

    • 必须是颜色文件夹吗?我不能把它放在值文件夹下吗?我试过它在价值观下不起作用/
    • 它必须是 color 。你为什么要把它放在 values 中?还要确保您的视图正在从父级获取状态。
    • 谢谢,异常不再存在。但是,当我“单击”文本视图时,颜色不会改变。我想知道是否有一种称为按下的状态?还是仅用于按钮?当用户点击 textivew 时我应该指定什么状态?
    • @AlexVolovoy 你好,当我尝试应用时,当用户触摸 TextView 时,我在代码中使用上述所有内容,但完全没有效果。我在 android 2.1update-1 中检查。
    • 好吧,我认为在 TextView 中我们不能直接将 textColor 作为 @color/mycolor 来使 textview 更改 TextColor,因此我们可以在按钮视图中使用这个东西,或者在这个例子中使用这个东西 [developer.android.com/resources/samples/Home/res/color/…
    【解决方案2】:

    使用选择器如下:

    <selector
    xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:state_selected="true"
    
        android:color="@color/c1" />
    <item
        android:color="@color/c2" />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-10
      • 1970-01-01
      • 2023-03-27
      • 2012-08-25
      • 2011-10-17
      • 2011-08-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多