使用 sharedpreferences 保存和检索微调器值

Saving and retrieving spinner value with sharedpreferences

我有一个旋转器。我想将它的值保存在 saveFile() 中,并在使用 sharedpreferences 调用 readFile() 时检索相同的值。我还没有找到正确的方法。

    spinner = (Spinner) findViewById(R.id.spinner);
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
            R.array.countries_array, android.R.layout.simple_spinner_item);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(adapter);
    public void saveFile(){
            SharedPreferences sharedPref = getSharedPreferences(FileName,Context.MODE_PRIVATE);
            SharedPreferences.Editor editor=sharedPref.edit();
     }
    public void readFile(){
            SharedPreferences sharedPref = getSharedPreferences(FileName,Context.MODE_PRIVATE);
    }

您应该添加

  editor.apply();

设置偏好值后。

试试这个

     public void saveFile(){
            SharedPreferences sharedPref = getSharedPreferences(FileName,Context.MODE_PRIVATE);
            SharedPreferences.Editor editor=sharedPref.edit();
            editor.putInt("spinnerValue",spinner.getSelectedItemPosition());
            editor.apply();
     }

     public void readFile(){
            SharedPreferences sharedPref = getSharedPreferences(FileName,Context.MODE_PRIVATE);
            int index = sharedPref.getInt("spinnerValue",0);
            spinner.setSelection(index);
     }

要在共享首选项中保存数据,您必须将数据写入共享首选项。写入数据使用:

SharedPreferences.Editor editor = sharedPref.edit();
editor.putInt(getString(R.string.saved_high_score_key), newHighScore);
editor.commit();

并再次阅读使用此:

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
int defaultValue = getResources().getInteger(R.integer.saved_high_score_default_key);
int highScore = sharedPref.getInt(getString(R.string.saved_high_score_key), defaultValue);

查看 official 文档了解更多信息。