Spinner:使用Android中的“共享首选项”存储和检索值

时间:2013-01-13 10:21:05

标签: android

我无法检索微调器的选定值。有人能帮助我吗?感谢。

这是我检索数据的方式。它在onCreate()方法中。

mPrefs = getSharedPreferences(PREFS_NAME, MODE_PRIVATE);
SpinnerLang.setSelection(mPrefs.getInt(PREF_SPINNER, 0));

然后我将Spinner的值保存在一个按钮中,因此当用户从Spinner中选择并单击该按钮时,将保存所选的值。

//Listening to button event
btnDone.setOnClickListener(new View.OnClickListener() {
  public void onClick(View v) {
    Editor e = mPrefs.edit();
    int Spinnervalue = SpinnerLang.getSelectedItemPosition();
    e.putInt("PREF_SPINNER", Spinnervalue);
    e.commit();
  }

3 个答案:

答案 0 :(得分:2)

使用spinner.setOnItemSelectedListener()优先存储所选项目位置

    spinner.setAdapter(mySpinnerAdapter);   

    spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

        /**
         * Called when a new item is selected (in the Spinner)
         */
        public void onItemSelected(AdapterView<?> parent,
            View view, int position, long id) {
            mPrefs.edit().putInt("PREF_SPINNER", position).commit();
        }

        public void onNothingSelected(AdapterView<?> parent) {
          // Do nothing.
        }
    }); // (optional)

    //UPDATE - When you are using a button onCLick()
    // to set the spinner selection:
    button.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            spinner.setSelection(mPrefs.getInt("PREF_SPINNER", 0));

        }
    });



     // set the spinner selected item from preference after 
     // spinner.setAdapter(mySpinnerAdapter);
     // -or it will default to the first item
 //    spinner.setSelection(mPrefs.getInt(PREF_SPINNER, 0));

答案 1 :(得分:1)

您可以使用这些方法,具体取决于您如何声明您的微调器。

getSelectedItem()

getSelectedItemPosition()

getSelectedItemId()

答案 2 :(得分:1)

确保使用的常量PREF_SPINNER和“PREF_SPINNER”在代码中分配了相同的值

mPrefs.getInt(PREF_SPINNER, 0)
e.putInt("PREF_SPINNER", Spinnervalue);
相关问题