使用共享首选项保存微调器选定项的值

atu*_*dav 4 android spinner android-preferences sharedpreferences

如何保存当前选定的微调器值,以便在重新打开应用程序时,默认情况下会自动选择保存的值?

我目前的代码:

 public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.loginpage);


     final Spinner spinner = (Spinner) findViewById(R.id.spinner1);
     ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
         this, R.array.spinner_array, android.R.layout.simple_spinner_item);
     adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

     spinner.setAdapter(adapter);



     spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {           
           @Override
           public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
               SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences( getBaseContext());
               SharedPreferences.Editor prefEditor = prefs.edit();
               prefEditor.putString("savedValue",spinner.getSelectedItem().toString());

               String savedValue=spinner.getSelectedItem().toString();

               for(int i=0;i<6;i++)
               if(savedValue.equals(spinner.getItemAtPosition(i).toString()))
               {
                   spinner.setSelection(i);
                   break;
               }
           }
           @Override
           public void onNothingSelected(AdapterView<?> parent){}
    });
Run Code Online (Sandbox Code Playgroud)

Ras*_*sel 5

我想你想要的是 - 在某些时候,你想在微调器中显示你保存的值(来自共享偏好)作为选定的项目.为此

使用包含您保存的值的所有默认值设置微调器适配器.现在您要将所保存的值显示为selected.Suppose您在适配器中有6个项目

String savedValue=PreferenceManager
                     .getDefaultSharedPreferences(context)
                     .getString("savedValue","");

for(int i=0;i<6;i++)
if(savedValue.equals(spinner.getItemAtPosition(i).toString())){
     spinner.setSelection(i);
     break;
}
Run Code Online (Sandbox Code Playgroud)

要在共享首选项中保存微调器值,请执行此操作

 SharedPreferences prefs;
 prefs = PreferenceManager.getDefaultSharedPreferences(context);
 SharedPreferences.Editor prefEditor = prefs.edit();
 prefEditor.putString("savedValue",spinner.getSelectedItem().toString());
 prefEditor.commit();
Run Code Online (Sandbox Code Playgroud)