1

スピナーの選択した値を取得できません。誰か助けてくれませんか?ありがとう。

これが私がデータを取得する方法です。onCreate()メソッドの中にあります。

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

次に、スピナーの値をボタンに保存します。ユーザーがスピナーから選択してボタンをクリックすると、選択した値が保存されます。

//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

を使用し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));
于 2013-01-13T10:40:59.523 に答える
1

スピナーを宣言した方法に応じて、これらのメソッドを使用できます。

getSelectedItem()

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 に答える