2016-05-31 3 views
0

Я хотел бы знать, как заполнить поле EditText значениями SharedPreferences. Мой код выглядит следующим образом:Как использовать значение SharedPreferences для заполнения EditText?

protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 
     FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 
     fab.setOnClickListener(this); 
     sharedPreferences = getSharedPreferences(getString(R.string.preference_file_key),MODE_PRIVATE); 
     textViewCheck(); 
    } 

    public void textViewCheck() 
    { 
     EditText sil_key = (EditText)findViewById(R.id.silent_key); 
     String silent_mode_key = sil_key.getText().toString(); 
     EditText gen_key = (EditText)findViewById(R.id.general_key); 
     String general_mode_key = gen_key.getText().toString(); 
     EditText vib_key = (EditText)findViewById(R.id.vibrate_key); 
     String vibrate_mode_key = vib_key.getText().toString(); 
     SharedPreferences.Editor editor = sharedPreferences.edit(); 
     if((sharedPreferences.contains("silent")) && (sharedPreferences.contains("general")) && (sharedPreferences.contains("vibrate"))) 
     { 
      sil_key.setText(sharedPreferences.getString("silent","silent1")); 
      gen_key.setText(sharedPreferences.getString("general","general1")); 
      vib_key.setText(sharedPreferences.getString("vibrate","vibrate1")); 
     } 
     editor.putString("silent",silent_mode_key); 
     editor.putString("general",general_mode_key); 
     editor.putString("vibrate",vibrate_mode_key); 
     editor.apply(); 
    } 

Я продолжаю получать одинаковые значения даже после изменения полей EditText. Я хотел бы знать, почему я продолжаю получать это и как преодолеть это. (Я так сожалею о предыдущей ошибке с GetString() метод, не заметил that.Please уточнить этот)

+0

Почему вы делаете 'Струнный silent_mode_key = sil_key.toString () '? –

+0

Вы получаете 'android.support.design' это из-за вышеуказанного комментария. –

+0

Мне очень жаль, что вы не видели обновленный вопрос – VaM999

ответ

0

я думаю, вы можете быть Мессинг при создании строки

EditText sil_key = (EditText)findViewById(R.id.silent_key); 
String silent_mode_key = sil_key.toString(); 

Я думаю, что вы имел в виду, чтобы сделать его строку из содержания текста редактирования как этот

String silent_mode_key = sil_key.getText().toString(); 

попробовать этот

EditText sil_key = (EditText)findViewById(R.id.silent_key); 
    String silent_mode_key = sil_key.getText().toString(); 
    EditText gen_key = (EditText)findViewById(R.id.general_key); 
    String general_mode_key = gen_key.getText().toString(); 
    EditText vib_key = (EditText)findViewById(R.id.vibrate_key); 
    String vibrate_mode_key = vib_key.getText().toString(); 
    SharedPreferences.Editor editor = sharedPreferences.edit(); 
    if((sharedPreferences.contains("silent")) && (sharedPreferences.contains("general")) && (sharedPreferences.contains("vibrate"))) 
    { 
     sil_key.setText(sharedPreferences.getString("silent","silent")); 
     gen_key.setText(sharedPreferences.getString("general","general")); 
     vib_key.setText(sharedPreferences.getString("vibrate","vibrate")); 
    } 
    editor.putString("silent",silent_mode_key); 
    editor.putString("general",general_mode_key); 
    editor.putString("vibrate",vibrate_mode_key); 
    editor.apply(); 
+0

Мне очень жаль, не могли бы вы увидеть обновленный вопрос? – VaM999

0

попытаться добавить getText(), как показано ниже для всех строк:

EditText sil_key = (EditText)findViewById(R.id.silent_key); 
    String silent_mode_key = sil_key.getText().toString(); 
+0

Мне очень жаль, что вы не видели обновленный вопрос – VaM999

+0

, а вы уже обновили getString() вместо getText(). – prat

+0

извините, изменено – VaM999

0

Я думаю, что вы должны добавить это до sharedPreferences.getString

sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); 
Смежные вопросы