如何使用android中的共享首选项在editText中保存数据

时间:2012-08-06 15:28:52

标签: java android

我有简单的editText,用户输入数字或字符串。 我想在用户再次进入应用程序时保留该数字或字符串。

3 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

看起来你可以做类似的事情:Counting Chars in EditText Changed Listener

然后,一旦检测到文字发生了变化,您就可以将其保存到SharedPreferences

或者,如果您只想在用户离开/进入应用时保留,那么您可以覆盖活动的onPause()方法以保存到SharedPreferences。只需使用<EditText>.getText()获取输入的字符串,然后保存即可。覆盖onResume(),然后在进入应用时使用<EditText>.setText(<String from SharedPreference>)进行恢复。

我假设您知道如何使用SharedPreferences,但如果您不知道,请告诉我。

答案 2 :(得分:0)

当用户使用OnFocusChangeListener从EditText Box中移除焦点时,此代码将保留数据;

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);