1

アイテムが選択されたときにスピナーのユーザー操作を聞くのに問題があります。以下のリスナーが完璧に機能することを知っています

spinner.setOnItemSelectedListener(this);

@Override
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
    // your code here
}

@Override
public void onNothingSelected(AdapterView<?> parentView) {
    // your code here
}

しかし、私のアプリケーションシナリオでは、プログラムを介してスピナーの値を変更しますが、その時も onitemselected イベントを発生させます。

注:初期スピナー値の選択項目については話していません。

どうすればこれを達成できるか教えてください

前もってありがとう、Naveenkumar.R

4

2 に答える 2

2
tempListener = spinner.getOnItemSelectedListener();
spinner.setOnItemSelectedListener(null);
//change the spinner value...
spinner.setOnItemSelectedListener(tempListener)

よりエレガントに、Spinner クラスをサブクラス化し、上記のコードと同じことを行う「disableOnItemSelectedListener()」および「enableOnItemSelectedListener()」メソッドを作成できます。

于 2012-06-06T14:24:00.650 に答える
0

onItemSelected の望ましくない呼び出しは、次のリンクで説明する簡単な手法を使用して回避できます。このようにして、心配することなくいつでも自分で setSelection を実行できます。この質問に対する受け入れられた回答を確認してください。

望ましくない onItemSelected 呼び出し

于 2014-04-06T14:53:49.920 に答える