繁体   English   中英

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

[英]Saving and loading spinner value using sharedPreferences

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

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

您忘记了使用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();
    }

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM