2017-02-09 13 views
0

* Пожалуйста, помогите **Показать автоматически getSharedPreferences

Я попытался показать SharedPreferences в моем приложении, но когда я открыть приложение удалить данные, и я ставит кнопку, чтобы показать еще раз. У меня есть кнопка, чтобы сохранить данные и другие для отображения данных, я пытался делат кнопку «Показать данные» и отображается автоматически

Вот код

public void savePreference(View view) 
    { 
     SharedPreferences myPreference = getSharedPreferences("MyDate",Context.MODE_ENABLE_WRITE_AHEAD_LOGGING); 
     SharedPreferences.Editor editor = myPreference.edit(); 


     EditText editNombre = (EditText) findViewById(R.id.editnombre); 
     EditText editApellido = (EditText) findViewById(R.id.editapellido); 
     EditText editCorreo = (EditText) findViewById(R.id.editcorreo); 
     EditText editnick = (EditText) findViewById(R.id.editnick); 

     String nombre = editNombre.getText().toString(); 
     String apellido = editApellido.getText().toString(); 
     String correo = editCorreo.getText().toString(); 
     String nickname = editnick.getText().toString(); 

     editor.putString("nombre",nombre); 
     editor.putString("apellido",apellido); 
     editor.putString("correo",correo); 
     editor.putString("nickname",nickname); 

     editor.apply(); 

     Toast.makeText(edit_profile_activity.this,"Se han agregado datos correctamente",Toast.LENGTH_SHORT).show(); 

    } 
    public void showPreference (View view) 

    { 
     SharedPreferences showmypreference = getSharedPreferences("MyDate",Context.MODE_ENABLE_WRITE_AHEAD_LOGGING); 

     String nombre = showmypreference.getString("nombre","No existe"); 
     String apellido = showmypreference.getString("apellido","No existe"); 
     String correo = showmypreference.getString("correo","No existe"); 
     String nickname = showmypreference.getString("nickname","No existe"); 


     TextView nametext = (TextView) findViewById(R.id.nametext); 
     TextView nick = (TextView) findViewById(R.id.nickname); 
     TextView email = (TextView) findViewById(R.id.editcorreo); 

     String preferencia = (nombre + apellido); 
     String shownick = (nickname); 
     String showemail =(correo); 


     nametext.setText(preferencia); 
     nick.setText(shownick); 
     email.setText(showemail); 

    } 

ответ

0

Я создал приложение с вашим кода и создал макет с подразумеваемыми объектами EditText и TextView. Кажется, ваш код делает именно то, что вы ему сказали. Когда настройки сохранены, данные считываются из 4 EditTexts и сохраняются в файле настроек MyDate. Когда настройки восстанавливаются, данные записываются в 2 TextViews (nametext и nickname) и в один из EditTexts (editcorreo). Другие EditTexts будут либо восстановлены в их текущем содержимом по умолчанию onRestoreInstanceState, либо будут инициализированы независимо от того, какой макет или onCreate помещены в них при инициализации.

Если вы пытаетесь восстановить данные в представлениях EditText так, как они были, когда ваше приложение завершает работу, то ваш метод showPreference должен получить ссылки на представления EditText и вызвать метод setText для каждого из них.

EditText editNombre = (EditText) findViewById(R.id.editnombre); 
    EditText editApellido = (EditText) findViewById(R.id.editapellido); 
    EditText editCorreo = (EditText) findViewById(R.id.editcorreo); 
    EditText editnick = (EditText) findViewById(R.id.editnick); 

    editNombre.setText(nombre); 
    editApellido.setText(apellido); 
    editCorreo.setText(correo); 
    editnick.setText(nickname); 

Также вы передаете представление каждому из этих методов, но не используете параметр в любом из методов. Если у вас нет веских причин оставить его, я бы рекомендовал удалить параметр View view.

+0

Метод, вероятно, связан с щелчком в его xml ... Вот почему view arg – Kushan

+0

Хорошая точка, я обычно объявляю своих собственных кликов и забываю о разнообразии XML. –

 Смежные вопросы

  • Нет связанных вопросов^_^