studio programacion móviles libros libro desarrollo desarrollar curso aprende aplicaciones android text colors summary preference

programacion - ¿Cómo puedo configurar el color de texto de resumen de preferencia de Android?



manual de programacion android pdf (5)

Hola, puedes cambiar el color de preferencia usando Html.fromHtml ().

ej: private String title = "" + "Establezca el límite de envío de SMS" + "";

y agregue establecer esta cadena desde su aplicación de Android de esta manera.

CheckBoxPreference _test = (CheckBoxPreference) findPreference ("texto"); _test .setTitle (Html.fromHtml (title));

siga este enlace para la vista html de android: http://www.androidpeople.com/tag/html-tags/

Gracias

En mi pantalla de preferencias tengo una preferencia que cuando hace clic se abre un cuadro de diálogo selector de color. Lo que me gustaría hacer es cuando el usuario selecciona un color, que el resumen de texto de la preferencia se muestra en ese color.

Sé que puedo configurar el resumen como este, Currently <font color="#ff0000">this color</font> y hacer que se muestre en ese color. El problema es que el color que estoy recuperando es el color int Android.

Podría usar los métodos rojo (), verde (), azul () y luego convertirlos a hexadecimal y luego combinarlos en una cadena para poder establecer el texto de resumen con el nuevo valor y eso funciona: String colorString = String.format("#%02x%02x%02x",Color.red( defaultColor ), Color.green( defaultColor ), Color.blue( defaultColor )); Solo tenía curiosidad si hay una manera más fácil de hacer esto.

Gracias de antemano.

Sean


OK, lo que terminé haciendo fue usar un Spannable. Esto toma el color como un entero.

Spannable summary = new SpannableString("Currently This Color"); summary.setSpan(new ForegroundColorSpan(color), 0, summary.length(), 0); preference.setSummary(summary);


Todas las formas anteriores no me ayudaron. Terminé por extender la clase de Preferencias:

public class CustomListPreferences extends Preference { public CustomListPreferences(Context context, AttributeSet attrs) { super(context, attrs); } public CustomListPreferences(Context context) { super(context); } @Override protected void onBindView(View view) { super.onBindView(view); ((TextView)view.findViewById(android.R.id.summary)).setTextColor(getContext().get Resources().getColor(R.color.green)); } }


Un poco tarde, pero me pareció útil escribir estos métodos autónomos:

private void setColorPreferencesTitle(EditTextPreference textPref, int color) { CharSequence cs = (CharSequence) textPref.getTitle(); String plainTitle = cs.subSequence(0, cs.length()).toString(); Spannable coloredTitle = new SpannableString (plainTitle); coloredTitle.setSpan( new ForegroundColorSpan(color), 0, coloredTitle.length(), 0 ); textPref.setTitle(coloredTitle); } private void resetColorPreferencesTitle(EditTextPreference textPref) { CharSequence cs = (CharSequence) textPref.getTitle(); String plainTitle = cs.subSequence(0, cs.length()).toString(); textPref.setTitle(plainTitle); }


Use Html.fromHtml para darle un estilo a su texto.

mPodFolderPref.setTitle(Html.fromHtml("<font color=''red''>" + mPodFolderPref.getTitle() + "</font>")); mPodFolderPref.setSummary(Html.fromHtml("<font color=''red''>" + mPodFolderPref.getSummary() + "</font>"));

Html.fromHtml puede hacer mucho por ti.