2010-12-03 3 views
0

Пожалуйста, попробуйте приведенный ниже код и дайте мне знать, моя проблема в том, что Я не получаю состояние «Пресса» для TextView, можно ли реализовать Нажатое состояние для TextView? как мне?Android - Проблема с изменением цвета текста TextView в другом состоянии

У меня есть успех, используя приведенный ниже код для Button, но не имеющий успеха для TextView.

пожалуйста руководство мне

Моя кнопка и TextView код:

<Button 
    android:id="@+id/Button01" 
    android:layout_width="fill_parent" 
    android:layout_height="50dp" 
    android:background="@drawable/button_state" 
    android:padding="20dp"> 
</Button> 

<TextView 
    android:text="Demo of Color on state change" 
    android:id="@+id/TextView01" 
    android:layout_width="fill_parent" 
    android:layout_height="50dp" 
    android:background="@drawable/button_state" 
    android:focusable="true"> 
</TextView> 

button_state.xml файл (я хранил его в вытяжке папке):

<selector 
    xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:state_pressed="true"> 
     <shape> 
      <gradient 
       android:startColor="@color/yellow1" 
       android:endColor="@color/yellow2" 
       android:angle="270" /> 
      <stroke 
       android:width="3dp" 
       android:color="@color/grey" /> 
      <corners 
       android:radius="3dp" /> 
      <padding 
       android:left="10dp" 
       android:top="10dp" 
       android:right="10dp" 
       android:bottom="10dp" /> 
     </shape> 
    </item> 

    <item android:state_focused="true" > 
     <shape> 
      <gradient 
       android:endColor="@color/orange1" 
       android:startColor="@color/orange2" 
       android:angle="270" /> 
      <stroke 
       android:width="3dp" 
       android:color="@color/grey" /> 
      <corners 
       android:radius="3dp" /> 
      <padding 
       android:left="10dp" 
       android:top="10dp" 
       android:right="10dp" 
       android:bottom="10dp" /> 
     </shape> 
    </item> 

    <item>   
     <shape> 
      <gradient 
       android:endColor="@color/blue1" 
       android:startColor="@color/blue2" 
       android:angle="270" /> 
      <stroke 
       android:width="3dp" 
       android:color="@color/grey" /> 
      <corners 
       android:radius="3dp" /> 
      <padding 
       android:left="10dp" 
       android:top="10dp" 
       android:right="10dp" 
       android:bottom="10dp" /> 
     </shape> 
    </item> 
</selector> 

color.xml файл:

<resources> 
<color name="yellow1">#FFFF99</color> 
<color name="yellow2">#FFCC00</color> 
<color name="orange1">#FF9966</color> 
<color name="orange2">#FF6600</color> 
<color name="blue1">#99CCFF</color> 
<color name="blue2">#0033CC</color> 
<color name="grey">#736F6E</color> 
</resources> 
+1

Я задал вопрос по этой теме с той же темой, но не имея полезного ответа: http://stackoverflow.com/questions/4336218/android-textview-change-color-on-changing-of-state – 2010-12-03 12:15:06

ответ

4

AFAIK, TextView не поддерживает прессованное состояние.

Просто используйте Button. Поскольку вы меняете фон Button, вы можете сделать его выглядящим, как хотите, в том числе похожим на равнину TextView.

+0

как вы создаете Button, чтобы выглядеть как TextView? Я хотел бы применить один и тот же стиль к нескольким кнопкам, используя