我尝试使用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);
}
答案 0 :(得分:1)
您忘记了使用editor.apply();
来保存SharedPreferences
中的值
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);