Solución:
1) Use tab_text_selector.xml como se muestra a continuación y colóquelo en la carpeta res / color:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:color="@android:color/white" />
<item android:state_focused="true" android:color="@android:color/white" />
<item android:state_pressed="true" android:color="@android:color/white" />
<item android:color="#504f4f" /> <!-- default case -->
</selector>
Y configúrelo en su vista de texto como se muestra a continuación.
TextView tv = (TextView) findViewById(R.id.TextView1) ;
tv.setTextColor(context.getResources().getColor(R.color.tab_text_selector));
2) La segunda opción es si está usando textview en xml en lugar de usar programáticamente, use tab_text_selector.xml como se muestra a continuación:
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:text="TextView"
android:textColor="@drawable/tab_text_selector" />
Tienes que usar getColorStateList (). Y para XML, vea aquí.
También estaba luchando con este problema. Si quieres usar un state list
, debe declararlo en el color
carpeta de recursos, en lugar de la drawable
carpeta, y use la setTextColor(getResources().getColorStateList(R.color.tab_text_selector))
método.
Úselo de esta manera:
tab_text_selector.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="#FF111111"/>
<item android:state_focused="true" android:color="#FF222222"/>
<item android:state_selected="true" android:color="#FF333333"/>
</selector>
Vista de texto:
TextView txtTab = new TextView(this);
XmlResourceParser xrp = getResources().getXml(R.drawable.tab_text_selector);
try {
ColorStateList csl = ColorStateList.createFromXml(getResources(), xrp);
txtTab.setTextColor(csl);
} catch (Exception e) { }
txtTab.setBackgroundResource(R.drawable.tab_bg_selector);
txtTab.setGravity(Gravity.CENTER);
txtTab.setText("Agregar Idea");
Pero es mejor ponerle color /res/color/yourcolor.xml
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)