Cambiar el color de TextView que se puede hacer clic en el enfoque y hacer clic?

Tengo un TextView clickable que quiero dar algunos colores a. Pero no sé cómo. Aquí están los fragmentos de código relevantes de mis dos archivos con los que estoy trabajando:

TextView title = new TextView(this); title.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); title.setTextColor(R.color.textcolor); title.setText(titleLine); title.setTypeface(null, Typeface.BOLD); title.setClickable(true); title.setId(idLine); title.setFocusable(true); title.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { /* Irrelevant code */ } }); 

Y este es mi archivo textcolor.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="#000000"/> <!-- pressed --> <item android:state_focused="true" android:color="#000000"/> <!-- focused --> <item android:color="#000000"/> <!-- default --> </selector> 

Cuando utilizo el archivo textcolor escribiendo title.setTextColor (R.color.textcolor); , El textcolor apenas llega a ser gris, sin importar si lo presiono o tan. Lo cual es extraño ya que he escrito "# 000000" en todos los campos de color.
Pero si quito el código de setTextColor, consigue el textView un color gris claro, y cuando lo presiono, llega a ser negro. Pero no son los colores que quiero.

Entonces, ¿alguien puede ayudarme con este problema?

Sólo para aclarar: Quiero ser capaz de especificar los colores para el texto cuando es normal, presionado y enfocado.

7 Solutions collect form web for “Cambiar el color de TextView que se puede hacer clic en el enfoque y hacer clic?”

Si desea establecer el color con estado de código, debe pasar en ColorStateList como un argumento a setTextColor pasando un int al resultado del método en establecer el color a todos los estados. También parece que su xml no es totalmente correcto. El ejemplo de los documentos de ColorStateList tiene el siguiente aspecto:

  <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_focused="true" android:color="@color/testcolor1"/> <item android:state_pressed="true" android:state_enabled="false" android:color="@color/testcolor2" /> <item android:state_enabled="false" android:color="@color/testcolor3" /> <item android:color="@color/testcolor5"/> </selector> 

UPD sobre cómo establecer un ColorStateList a color de texto:

 ColorStateList cl = null; try { XmlResourceParser xpp = getResources().getXml(R.color.selector_txt); cl = ColorStateList.createFromXml(getResources(), xpp); } catch (Exception e) {} 

Con XML es tan fácil como:

 android:textColor="@color/selector_txt" 

Paso 1: Establecer el color de texto en xml como este

Android: textColor = "@ color / text_color"

Paso 2: Crear res / color / text_color.xml

 <selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:state_pressed="true" android:color="#ffffffff"/> <!-- pressed --> <item android:state_focused="true" android:color="#ff0000ff"/> <!-- focused --> <item android:color="#ff000000"/> <!--default --> </selector> 

Prueba este .. Funcionó para mí:

Nombre de archivo: res / color / bg_tab_text_color.xml

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

Pruebe a configurar el color en formato xml como:

 android:textColor="@color/bg_tab_text_color" 

Busque en la clase R.java (se genera automáticamente). Tienes algo así:

  public static final class color { public static final int gray_transparent=0x7f050001; } 

Así que en su código en línea:

 title.setTextColor(R.color.textcolor); 

No está estableciendo valores de textcolor.xml pero int de R.java (que contiene la dirección textcolor.xml). La forma válida de establecer el color es:

 title.setTextColor(getResources().getColorStateList(R.color.textcolor)); 

Es muy fácil. Prueba este .. Funcionó para mí:

Nombre de archivo: res / color / bg_tab_text_color.xml

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

Pruebe a configurar el color en formato xml como:

 android:textColor="@color/bg_tab_text_color" 

En res / drawable / tab_textColor.xml:

 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_selected="true" android:color="#FFFFFF" /> <item android:state_pressed="true" android:color="#FFFFFF" /> <item android:color="#CCCCCC" /> </selector> <TextView android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/icon" android:layout_centerHorizontal="true" android:layout_marginTop="5dp" android:text="@string/tab_indicator_home" android:textColor="@drawable/tab_textcolor" android:textSize="10sp" android:visibility="visible" tools:ignore="SmallSp" /> 

En res / color / text_selector.xml:

 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:color="@color/white" android:state_selected="true"/> <item android:color="#8020e0"/> </selector> 

En disposición:

 <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Word" android:textColor="@color/text_selector" android:textSize="12sp"/> 

En codigo:

 textView.setSelected(false); // To deselect. textView.setSelected(true); 
  • Usando onClick en TextView con texto seleccionable - cómo evitar doble clic?
  • Comportamiento de líneas de interrupción de texto de Android (cómo dividir la última palabra)
  • ¿Cómo configurar varios oyentes de clics en diferentes palabras de textview?
  • El desplazamiento de texto no funciona
  • Android: agrega texto a la presentación al pulsar el botón
  • Actualizar un TextView después de hacer clic en el botón?
  • Cambiar el tamaño de fuente de un elemento textview en android
  • Cómo mostrar el valor de una variable en la pantalla
  • Android: TextView: elimina el espaciado y el relleno en la parte superior e inferior
  • El valor de la vista de texto se restablece al cambiar el fragmento
  • Android TextView getTextSize () incluye descendientes, ascenders
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.