Textview onclick bg изменение цвета в Android

#android

#Android

Вопрос:

Если мы щелкнем по любому текстовому представлению в Listview, цвет фона должен измениться, а onclick release, он должен измениться на прозрачный цвет в Android.Есть ли вообще?

Ответ №1:

Создайте textview_selector.xml в папке для рисования:

 <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/pressed_color"
          android:state_pressed="true" />    
    <item android:drawable="@drawable/normal_color" />
</selector>
  

Определение цветов в color.xml в res> значения:

 <?xml version="1.0" encoding="utf-8"?>
<resources>

     <drawable name="pressed_color">#FF0000</drawable> <!--custom color for pressed state -->
    <drawable name="normal_color">#00FFFFFF</drawable> <!--transperent color for normal state -->
</resources>
  

Теперь вам нужно использовать его там, где вы определяете textviews как часть вашего listitem.

 <TextView 
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:id="@ id/textview1"
      android:gravity="center"
      android:text="This is sample!"
      android:background="@drawable/textview_selector"   
      android:clickable="true"   
/>      
  

Комментарии:

1. Этот способ не работает, если для Textview есть какой-либо OnClickListener.

2. Я думаю, у вас может возникнуть проблема, поскольку ваши клики по listitem и textview конфликтуют.

3. да, если для Textview нет OnClickListener, а для Listview есть OnItemClickListener, то он работает. Но здесь OnClickListener для Textview необходим для функциональности. Как добиться этого динамически в OnClickListener?

4. попробуйте использовать кнопку вместо textview и установите цвет ее текста и фона в соответствии с вашими требованиями в вашем пользовательском классе адаптера.

5. Но, к сожалению, кнопка не входит в мои требования. Требуется только textview.

Ответ №2:

Посетите http://developer.android.com/guide/topics/ui/themes.html ! Существует очень хорошее объяснение относительно концепции, которую вы ищете.

Комментарии:

1. Если есть прослушиватель onitemclick, то работает только этот тип стилей. Здесь требуется onclicklistener для Textview, поэтому не удается применить эти стили. Если вы предоставите код для этого в OnClickListener Textview, то это будет полезно.