android - 如何保存在微调器中选择的值,以便在通过 ViewPager 滑动时值不会改变

标签 android android-spinner

我正在使用“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/

相关文章:

android - 我可以将数据从我的网站发送到 firebase 吗?

android - Moshi 1.9.x 无法序列化 Kotlin 类型

java - 错误/dalvikvm(1399) : Could not find class 'maptest.xyz.com.maps' , 从方法 maptest.xyz.com.maptest$1.onClick 引用

android - Android选中下拉项修改颜色

java - 阻止 Android Spinner 删除列表

Android:Spinner 项目的圆角

android - 在 Spinner 上设置文本

java - 错误: If a primary key is annotated with autoGenerate,其类型必须是int、Integer、long或Long

android - 将 Android 应用程序与 CakePhp 网站连接

android - Spinner OnItemSelectedListener 问题