我无法检索微调器的选定值。有人能帮助我吗?感谢。
这是我检索数据的方式。它在onCreate()
方法中。
mPrefs = getSharedPreferences(PREFS_NAME, MODE_PRIVATE);
SpinnerLang.setSelection(mPrefs.getInt(PREF_SPINNER, 0));
然后我将Spinner的值保存在一个按钮中,因此当用户从Spinner中选择并单击该按钮时,将保存所选的值。
//Listening to button event
btnDone.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Editor e = mPrefs.edit();
int Spinnervalue = SpinnerLang.getSelectedItemPosition();
e.putInt("PREF_SPINNER", Spinnervalue);
e.commit();
}
答案 0 :(得分:2)
使用spinner.setOnItemSelectedListener()
优先存储所选项目位置
spinner.setAdapter(mySpinnerAdapter);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
/**
* Called when a new item is selected (in the Spinner)
*/
public void onItemSelected(AdapterView<?> parent,
View view, int position, long id) {
mPrefs.edit().putInt("PREF_SPINNER", position).commit();
}
public void onNothingSelected(AdapterView<?> parent) {
// Do nothing.
}
}); // (optional)
//UPDATE - When you are using a button onCLick()
// to set the spinner selection:
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
spinner.setSelection(mPrefs.getInt("PREF_SPINNER", 0));
}
});
// set the spinner selected item from preference after
// spinner.setAdapter(mySpinnerAdapter);
// -or it will default to the first item
// spinner.setSelection(mPrefs.getInt(PREF_SPINNER, 0));
答案 1 :(得分:1)
答案 2 :(得分:1)
确保使用的常量PREF_SPINNER和“PREF_SPINNER”在代码中分配了相同的值
mPrefs.getInt(PREF_SPINNER, 0)
e.putInt("PREF_SPINNER", Spinnervalue);