Preferencias compartidas

Quiero mostrar un cuadro de edición en las preferencias compartidas que debe ser leído sólo para el usuario, pero yo debería ser capaz de cambiar a través de código. ¿cómo lograrlo?

Este tutorial es bueno para crear preferencias. Además, si desea cambiar las preferencias fuera de PreferenceActivity , debe utilizar el Editor. Por ejemplo:

 Editor e = PreferenceManager.getDefaultSharedPreferences(getBaseContext()).edit(); e.putString("yourPreference", "default value"); e.commit(); 

Espero que ayude

Además, como muestra la documentación aquí , la PreferenceActivity se utiliza para mostrar un estilo visual de las preferencias. Además, como se indica en el mismo enlace, "las preferencias se guardarán automáticamente en SharedPreferences a SharedPreferences que el usuario interactúa con ellas".

Por lo tanto, sabiendo esto, si no desea que el usuario edite esa preferencia, puede utilizar un TextView o un EditText no editable en PreferenceActivity y, a continuación, utilice el código anterior para modificarlo fuera de PreferenceActivity . Espero que eso ayude.

Lo que quieres es un TextView. Un EditText es una subclase TextView editable por el usuario de forma predeterminada. Por lo tanto, se establece el TextView, el usuario no puede modificarlo y se establece el texto con

 TextView tv = new TextView(this); tv.setText(""); 

¿Está utilizando el estándar PreferenceActivity ? Si es así, debería poder ir a su archivo XML de preferencia y establecer android:enabled="false" en los que desea ser de sólo lectura.

Espero u primero debe mostrar el valor de pref compartido y el uso de android:editable="false" en el diseño de cuadro de texto. este código no permitirá al usuario modificar el texto en editbox.

Pruebe esto en el XML: android: selectable = "false"

Una forma en la que puede mostrar texto no editable es usar una Preferencia estándar y establecer su resumen (texto pequeño que se muestra bajo el título Preferencia).

 <Preference android:key="text_preference" android:selectable="false" android:title="Title" /> 

.

  Preference textPreference = (Preference) getPreferenceManager().findPreference("text_preference"); textPreference.setSummary("Text"); 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.