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