как сохранить данные в editText с помощью общих настроек в Android

1

У меня есть простой editText, в который пользователь вводит число или строку. Я хочу сохранить этот номер или строку, когда пользователь снова войдет в приложение.

Теги:

3 ответа

1
Лучший ответ

1. Сначала сохраните это в preference как это

 SharedPreferences myPrefs = this.getSharedPreferences("myPrefs", MODE_WORLD_READABLE);
        SharedPreferences.Editor prefsEditor = myPrefs.edit();
        prefsEditor.putString(MY_NAME, edittext.getText().toString());
        prefsEditor.putString(MY_WALLPAPER, "f664.PNG");
        prefsEditor.commit();

2. Теперь второй раз, когда вы получите это

SharedPreferences myPrefs = this.getSharedPreferences("myPrefs", MODE_WORLD_READABLE);
        String prefName = myPrefs.getString(MY_NAME, 0);
        String wallPaper = myPrefs.getString(MY_WALLPAPER, null);
0

Похоже, вы могли бы сделать что-то похожее на это: подсчет голосов в EditText Changed Listener

Затем, как только вы обнаружите, что текст изменился, вы можете сохранить его в SharedPreferences.

В качестве альтернативы, если вы хотите продолжать, когда пользователь уходит или входит в приложение, вы можете просто переопределить метод onPause() своей активности, чтобы сохранить его в SharedPreferences. Просто используйте <EditText>.getText() чтобы получить <EditText>.getText() строку, а затем сохраните ее. Переопределите onResume() а затем используйте <EditText>.setText(<String from SharedPreference>) чтобы восстановить его при входе в приложение.

Я предполагаю, что вы знаете, как использовать SharedPreferences, но дайте мне знать, если вы этого не сделаете.

  • 0
    Этот код работает очень хорошо.
0

Этот код будет сохраняться, когда пользователь удаляет фокус из окна EditText с помощью OnFocusChangeListener;

EditText userInput = (EditText)findViewById(R.id.ID_HERE);
SharedPreferences pref = this.getPreferences(this.MODE_PRIVATE);

String data_key = "data";

View.OnFocusChangeListener persistData = new View.OnFocusChangeListener(){

    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        // TODO Auto-generated method stub
        if(!hasFocus){
            EditText e = (EditText)v;
            SharedPreferences.Editor edit = pref.edit();
            edit.putString(data_key,e.getText().toString());
            edit.commit();
        }
    }

};

userInput.setOnFocusChangeListener(persistData);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню