使用sharedPreferences保存和加载微调器值

时间:2018-08-21 09:45:19

标签: java android android-spinner android-sharedpreferences

我尝试使用spinner将所选项目保存并加载到sharedPreferences中。即使代码没有显示错误,也无法正常工作。有人帮忙。

country=(Spinner)findViewById(R.id.spinner);
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();
        int userChoice = country.getSelectedItemPosition();
        editor.putInt("userChoiceSpinner",userChoice);
}

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

2 个答案:

答案 0 :(得分:1)

您忘记了使用editor.apply();来保存SharedPreferences中的值

  

editor.apply();

  • 提交您的首选项,将从此编辑器更改回它正在编辑的SharedPreferences对象。这会自动执行请求的修改,从而替换SharedPreferences中当前的内容。

尝试一下

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

答案 1 :(得分:0)

您将国家/地区和微调器设置为相同的ID,可能显示一个微调器未设置数据

country=(Spinner)findViewById(R.id.spinner);
spinner = (Spinner) findViewById(R.id.spinner);