如何在重新启动或恢复应用程序后保留Spinner所选项目

时间:2013-03-12 07:09:29

标签: android android-spinner

在申请SpinneronRestart()之后,我必须保持onResume()所选项目保持不变。使用Spinner从sqlite数据库填充ArrayAdapter个项目。所以指导我如何实现这一目标。

String myString = (String) myspinner.getSelectedItem();` //the value you want the position for
    ` @SuppressWarnings("unchecked")
    ArrayAdapter<String> myAdap = (ArrayAdapter<String>) myspinner.getAdapter(); //cast to an ArrayAdapter
    int spinnerPosition = myAdap.getPosition(myString);
    //set the default according to value
    myspinner.setSelection(spinnerPosition);

2 个答案:

答案 0 :(得分:1)

您必须将最后选择的位置存储到share-Preference or in database中,当应用重启时,然后将相应的存储位置传递给您的微调器,并在将位置更改为微调器时继续更新SP。

店铺位置:

SharedPreferences SP;
SP = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
SP.edit().putInt("last index", spin.getSelectedItemPosition()).commit();

检索并设置为微调器:

 SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
     if(SP!=null){
             int pos = SP.getInt("last index", 0);

             spin.setSelection(pos);
}

答案 1 :(得分:0)

您可以在onSaveInstanceState()中保存微调器的位置并返回微调器位置 来自onRestoreInstanceState()。您可以使用公共全局变量来更新微调器 位置。

并在onResume()方法中使用此变量。 希望它能起作用

check it