【问题标题】:save value of spinner selected item using shared preference使用共享首选项保存微调器选定项目的值
【发布时间】:2011-07-15 09:49:05
【问题描述】:

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

我当前的代码:

 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){}
    });

【问题讨论】:

    标签: android spinner sharedpreferences android-preferences


    【解决方案1】:

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

    使用所有默认值设置微调适配器,包括您保存的值。现在您想将保存的值显示为选中状态。假设适配器中有 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;
    }
    

    要以共享偏好保存微调器值,请执行此操作

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

    【讨论】:

    • 嗨 rasel 实际上我也想知道如何使用微调器的共享偏好请你能解释一下吗请..
    • 查看更新的答案如何将您的微调器值保存在共享首选项中
    • v v 感谢 rasel 帮助我...如果我觉得有任何问题我会问你...我认为应该现在就完成...
    • 你好 Rasel 请在上面查看我更新的代码..当我从微调器中选择任何项目并返回然后当我再次进入该页面时它不显示先前选择的值,而是显示微调器的第一个数组值正在显示......我错在哪里......谢谢
    • 你做错了。当你必须在共享偏好中保存所选项目时,你必须保存。当你必须在微调器中显示之前保存的值时,首先你必须读取值从共享偏好然后比较我告诉通过保存的项目设置您的微调器
    猜你喜欢
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多