我正在使用“ViewPager”在页面中滑动,我在所有页面中都使用了 Spinner 组件,现在在滑动时,我丢失了我在上一页中选择的值,如何保存 Spinner 组件的状态,这样即使滑动页面后,值不会改变。下面是我的代码:
spinner.setOnItemSelectedListener(AdapterClass.this);
// Spinner Drop down elements
List<String> categories = new ArrayList<String>();
categories.add("Automobile");
categories.add("Business Services");
categories.add("Computers");
categories.add("Education");
categories.add("Personal");
categories.add("Travel");
// Creating adapter for spinner
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(mContext, android.R.layout.simple_spinner_item, categories);
// Drop down layout style - list view with radio button
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// attaching data adapter to spinner
spinner.setAdapter(dataAdapter);
最佳答案
你可以尝试做这样的事情:
int spinnerPosition = yourSpinner.getSelectedItemPosition();
将其存储在共享首选项中:
SharedPreferences sharedPref = yourContext.getSharedPreferences("spinnerPositionValue", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = editor = sharedPref.edit();
editor.putInt("spinnerPositiionValueKey", spinnerPosition);
editor.commit();
现在,无论在您的 Activity 或 Fragment 中的任何位置,只要您丢失微调器的值,只需检查您对该值的共享偏好,获取该值并更新您的微调器项目。
int savedSpinnerPosition = sharedPref.getInt("spinnerPositiionValueKey");
yourSpinner.setSelection(savedSpinnerPosition);
希望这对你有用。
关于android - 如何保存在微调器中选择的值,以便在通过 ViewPager 滑动时值不会改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32472778/