Recuperación de valores de prefrences compartidos en otra actividad

¿Puede alguien decir dónde estoy equivocado porque es sólo un proceso simple, pero cómo su no recuperar los valores que no puedo entender y hacer comprobación condicional sobre la variable de cadena …

Actividad A: –

EditText e = (EditText) findViewById(R.id.editText1); EditText e1 = (EditText) findViewById(R.id.editText2); EditText e2 = (EditText) findViewById(R.id.editText3); EditText e3 = (EditText) findViewById(R.id.editText4); EditText e4 = (EditText) findViewById(R.id.editText5); EditText e5 = (EditText) findViewById(R.id.editText6); EditText e6 = (EditText) findViewById(R.id.editText7); SharedPreferences myPrefs = getSharedPreferences("myPrefs", Context.MODE_WORLD_READABLE); SharedPreferences.Editor editor = myPrefs.edit(); editor.putString("text", e.getText().toString()); SharedPreferences myPrefs1 = getSharedPreferences("myPrefs1", Context.MODE_WORLD_READABLE); SharedPreferences.Editor editor1 = myPrefs1.edit(); editor1.putString("text1", e1.getText().toString()); SharedPreferences myPrefs2 = getSharedPreferences("myPrefs2", Context.MODE_WORLD_READABLE); SharedPreferences.Editor editor2 = myPrefs.edit(); editor2.putString("text2", e2.getText().toString()); SharedPreferences myPrefs3 = getSharedPreferences("myPrefs3", Context.MODE_WORLD_READABLE); SharedPreferences.Editor editor3 = myPrefs3.edit(); editor3.putString("text3", e3.getText().toString()); SharedPreferences myPrefs4 = getSharedPreferences("myPrefs4", Context.MODE_WORLD_READABLE); SharedPreferences.Editor editor4 = myPrefs4.edit(); editor4.putString("text4", e4.getText().toString()); SharedPreferences myPrefs5 = getSharedPreferences("myPrefs5", Context.MODE_WORLD_READABLE); SharedPreferences.Editor editor5 = myPrefs5.edit(); editor5.putString("text5", e5.getText().toString()); SharedPreferences myPrefs6 = getSharedPreferences("myPrefs6", Context.MODE_WORLD_READABLE); SharedPreferences.Editor editor6 = myPrefs6.edit(); editor6.putString("text6", e6.getText().toString()); 

Actividad B: -En esta actividad estoy accediendo a los valores y haciendo el chequeo condicional pero solo otra condición se está ejecutando en ambos casos

 public class CheckActivity extends Activity{ public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); SharedPreferences myPrefs = getSharedPreferences("myPrefs",Context.MODE_PRIVATE); String restoredText = myPrefs.getString("text", ""); SharedPreferences myPrefs1 = getSharedPreferences("myPrefs1",Context.MODE_PRIVATE); String restoredText1 = myPrefs1.getString("text1", ""); SharedPreferences myPrefs2 = getSharedPreferences("myPrefs2",Context.MODE_PRIVATE); String restoredText2 =myPrefs2.getString("text2", ""); SharedPreferences myPrefs3 = getSharedPreferences("myPrefs3",Context.MODE_PRIVATE); String restoredText3 =myPrefs3.getString("text3", ""); SharedPreferences myPrefs4 = getSharedPreferences("myPrefs4",Context.MODE_PRIVATE); String restoredText4 = myPrefs4.getString("text4", ""); SharedPreferences myPrefs5 = getSharedPreferences("myPrefs5",Context.MODE_PRIVATE); String restoredText5 = myPrefs5.getString("text5", ""); SharedPreferences myPrefs6 = getSharedPreferences("myPrefs6",Context.MODE_PRIVATE); String restoredText6 = myPrefs6.getString("text6", ""); Intent i1 = new Intent(); if((restoredText.length()>1)&&(restoredText1.length()>1)&&(restoredText2.length()>1)&&(restoredText3.length()>1)&&(restoredText4.length()>1)&&(restoredText5.length()>1)&&(restoredText6.length()>1)) { i1.setClass(this,ShpoonkleActivity.class); } //if((restoredText.length()==0)||(restoredText1.length()==0)||(restoredText2.length()==0)||(restoredText3.length()==0)||(restoredText4.length()==0)||(restoredText5.length()==0)||(restoredText6.length()==0)) else { i1.setClass(this,Test.class); } startActivity(i1); finish(); } } 

3 Solutions collect form web for “Recuperación de valores de prefrences compartidos en otra actividad”

usted debe confirmar sus datos con editor.commit();

Nota: en tu caso, no hay necesidad de usar muchas instancias de SharedPreferences , solo necesitas una instancia, y luego poner todas tus Strings en ella, y commit

Deberías usar

 editor.commit(); 

para que sus cambios sean preservados. y también, no es necesario utilizar diferentes archivos para almacenar varias cadenas, puede almacenar todas las cadenas en el mismo archivo de preferencias compartidas.

en realidad el texto de edittext de creación estaba creando ambigüedad y por lo tanto no estaba ejecutando así así que hice esto como se muestra a continuación: –

Actividad B: –

 protected void onPause() { EditText ed = (EditText)findViewById(R.id.editText1); EditText ed1 = (EditText)findViewById(R.id.editText2); EditText ed2 = (EditText)findViewById(R.id.editText3); EditText ed3 = (EditText)findViewById(R.id.editText4); EditText ed4 = (EditText)findViewById(R.id.editText5); EditText ed5 = (EditText)findViewById(R.id.editText6); EditText ed6 = (EditText)findViewById(R.id.editText7); super.onPause(); SharedPreferences myPrefs = getSharedPreferences("myPrefs", Context.MODE_WORLD_READABLE); SharedPreferences.Editor editor = myPrefs.edit(); editor.putString("text", ed.getText().toString()); editor.putString("text1", ed1.getText().toString()); editor.putString("text2", ed2.getText().toString()); editor.putString("text3", ed3.getText().toString()); editor.putString("text4", ed4.getText().toString()); editor.putString("text5", ed5.getText().toString()); editor.putString("text6", ed6.getText().toString()); editor.commit(); } 

Actividad A: –

 public class CheckActivity extends Activity{ public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); SharedPreferences myPrefs = getSharedPreferences("myPrefs",Context.MODE_PRIVATE); String restoredText = myPrefs.getString("text", ""); String restoredText1 = myPrefs.getString("text1", ""); String restoredText2 =myPrefs.getString("text2", ""); String restoredText3 =myPrefs.getString("text3", ""); String restoredText4 = myPrefs.getString("text4", ""); String restoredText5 = myPrefs.getString("text5", ""); String restoredText6 = myPrefs.getString("text6", ""); Intent i1 = new Intent(); if((restoredText.length()>0)&&(restoredText1.length()>0)&&(restoredText2.length()>0)&&(restoredText3.length()>0)&&(restoredText4.length()>0)&&(restoredText5.length()>0)&&(restoredText6.length()>0)) { i1.setClass(this,ShpoonkleActivity.class); } //if((restoredText.length()==0)||(restoredText1.length()==0)||(restoredText2.length()==0)||(restoredText3.length()==0)||(restoredText4.length()==0)||(restoredText5.length()==0)||(restoredText6.length()==0)) else { i1.setClass(this,Test.class); } startActivity(i1); finish(); } } 

Y funciona impresionante … thnx ..

  • ¿La aplicación de actualización borra las preferencias compartidas o elimina las alarmas establecidas por la aplicación?
  • Copia de seguridad de Android 2.2: ¿Cómo hacer copias de seguridad DefaultSharedPreferences?
  • Botón Inicio de la barra de acciones no funcional con PreferredScreen anidado
  • Android: Mantenga el nombre de usuario en sesión hasta que se cierre la sesión
  • Preferencias independientes para cada vista en una aplicación para Android
  • Prueba de unidad de Android: cómo borrar SharedPreferences
  • Arquitectura de la aplicación de Android: RxJava
  • Preferencia y comprobación de la casilla de verificación si está activada o desactivada
  • Pros y contras de SQLite y preferencias compartidas
  • SharedPreferences Borrar / Guardar
  • Expectativa de puntero nulo al comprobar si SharedPrefs es igual a Null
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.