1

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

这就是我检索数据的方式。它在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();
  }
4

3 回答 3

2

使用 aspinner.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));
于 2013-01-13T10:40:59.523 回答
1

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

获取选定项()

getSelectedItemPosition()

getSelectedItemId()

于 2013-01-13T10:28:14.777 回答
1

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

mPrefs.getInt(PREF_SPINNER, 0)
e.putInt("PREF_SPINNER", Spinnervalue);
于 2013-01-13T10:32:02.047 回答