Diferencia entre setTextAppearance de código vs. recurso

Cuando llamo setTextAppearance(this, android.R.style.TextAppearance_Medium) programáticamente consigo la fuente de tamaño medio con el texto gris claro.

Sin embargo, cuando uso el android:textAppearance="@android:style/TextAppearance.Medium" en el xml entonces consigo el mismo texto clasificado pero es negro coloreado.

Cuál es la diferencia entre esto?

La parte relevante del archivo xml se ve así:

 <Button android:id="@+id/button1" android:layout_width="match_parent" android:layout_height="wrap_content" android:textAppearance="@android:style/TextAppearance.Medium" android:text="Button" /> 

El código se ve así:

 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button button = (Button)findViewById(R.id.button1); button.setText("This is a long text"); //button.setTextAppearance(this, android.R.style.TextAppearance_Medium); } 

La respuesta correcta es setTextAppearance(context, android.R.style.TextAppearance_Large);

No debe ser diferente. La única manera de obtener un color diferente es:

1) cambiar el color del texto programáticamente después de que su setTextAppearance

o

2) Sus archivos xml contiene un androide: textColor con negro.

Si su código xml contiene el atributo android: textColor, Android utilizará ese, en lugar del definido en xml. Si establece manualmente SetTextAppearance, se utilizará el color del estilo.

Por lo tanto, probablemente tenga android: textColor = "# 000000" en el xml para ese elemento

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.