usar studio sirve que para pantalla getsharedpreferences example ejemplo crear configuracion como activity android colors preferences summary

sirve - sharedpreferences android studio ejemplo



Android preferencias resumen de color predeterminado? (6)

He instalado mi aplicación en un teléfono real, y aunque en el emulador todos los textos de los resúmenes de preferencias parecen ser del mismo color, en el teléfono real el color es diferente (algún tipo de azul ... pero supongo depende del modelo del teléfono).

¿Cómo puedo establecer este color en mi componente de preferencias personalizadas? (He implementado mi propia barra de búsqueda, y su color de texto de resumen es diferente del resto del color de texto de los componentes ...).

¡Gracias!


He descubierto una forma de recuperar el color predeterminado utilizado por el dispositivo Android en el que se ejecuta su aplicación. Es un poco complicado y requiere que recupere el color que se muestra desde otra Vista de resumen de preferencias de su actividad y lo almacene en tiempo de ejecución.

Luego puede usar el mismo código de color en otras vistas de otras preferencias, asegurando que siempre obtendrá el mismo código de color Android asignado a las preferencias estándar. Así es como lo hice:

Mi actividad de preferencias tiene una CheckBoxPreference normal que utilizo para activar o desactivar un servicio. He extendido CheckBoxPreference de la siguiente manera, por lo que mi extensión recupera en tiempo el color predeterminado que Android finalmente dio al resumen de esa CheckBoxPreference:

public class MyCheckBoxPreference extends android.preference.CheckBoxPreference { private static int sSummaryColor = Color.WHITE; private static boolean sInitialized = false; public MyCheckBoxPreference(Context context) { super(context); } public MyCheckBoxPreference(Context context, AttributeSet attrs) { super(context, attrs); } public MyCheckBoxPreference(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } @Override public void onBindView(View view) { super.onBindView(view); if (!sInitialized) { sSummaryColor = getSummaryColor(view); sInitialized = true; } } private int getSummaryColor(View view) { int color = Color.WHITE; // Gets the color android gave to the summary by default TextView summaryView = (TextView) view.findViewById(android.R.id.summary); if (summaryView != null) { ColorStateList list = summaryView.getTextColors(); if (list != null) { color = list.getDefaultColor(); } } return color; } public static int getSummaryColor() { return sSummaryColor; } }

En mi preferences.xml instalo esa preferencia como MyCheckBoxPreference en lugar de solo CheckBoxPreference:

<org.yourpackage.MyCheckBoxPreference android:title="@string/preference_title_activate" android:defaultValue="false" android:summary="@string/preference_summary_activate_off" android:summaryOff="@string/preference_summary_activate_off" android:key="preference_activate"> </org.yourpackage.MyCheckBoxPreference>

MyCheckBoxPreference debe crearse una instancia una vez antes de recuperar el color de resumen con MyCheckBoxPreference.getSummaryColor ().

Ahora puede establecer el color de otras preferencias personalizadas desde onBindView (Ver):

public class MyCustmizedPreference extends Preference { public MyCustmizedPreference (Context context) { super(context); setLayoutResource(R.layout.my_customized_preference); } @Override public void onBindView(View view) { super.onBindView(view); TextView summaryView = (TextView) view.findViewById(android.R.id.summary); if (summaryView != null) { summaryView.setTextColor(MyCheckBoxPreference.getSummaryColor()); } } }

En realidad funciona bajo Samsung Galaxy S. También he probado que no rompe nada debajo del emulador.


Los teléfonos Samsung Galaxy S tienen su propio diseño de preferencias con el color de texto especificado para la línea Resumen. Aunque se especifica TextAppearance.Small, el atributo textColor del diseño está anulando la apariencia del texto.


No creo que esto sea posible. Puedo cambiar el color de fondo y el color del texto del título, pero no el color de resumen.

Fondo:

getListView().setBackgroundColor(Color.TRANSPARENT);

Texto del título:

Preference yourpreference = findPreference("yourpreference"); TextView tv = (TextView)yourpreference.getView(null, getListView()); tv.setTextColor(...);

Lo siento, no pude ayudar más ...


Tuve el mismo problema y he estado experimentando con el estilo personalizado de preferencia de la barra de búsqueda. Finalmente, estas líneas en el método onCreateView de seekBarPreference.java muestran el resumen de las preferencias con el color de texto predeterminado:

TextView summaryText = new TextView(getContext()); summaryText.setText(getSummary()); summaryText.setTextAppearance(getContext(), android.R.style.TextAppearance_Small);

Lo uso en preference_screen.xml :

<com.asdasf.SeekBarPreferencias android:key="@string/pref_seekBar_distance_key" android:id="@+id/mySeekBarPreference" android:title="@string/pref_seekBar_distance_title" android:summary="@string/pref_seekBar_distance_summary" android:max="50" android:defaultValue="12" android:layout_width="match_parent" android:layout_height="wrap_content" />

Espero que sea útil ... (y que he escrito bien mi primera respuesta) ¡Mira!


Encontré esto: android:textAppearance="?android:attr/textAppearanceLarge" y android:textAppearance="?android:attr/textAppearanceSmall" parecen hacer el truco.


Preference pUpdate = findPreference("sys_setting_update"); pUpdate.setSummary(Html.fromHtml("<font color=/"#B0C4DE/">This is content</font>"));

use Html.fromHtml("<font color=/"#B0C4DE/">This is content</font>") para setSummary