1

ビューで動的に作成されたスピナーのリストがあります。スピナーをクリックすると、現在選択されているアイテムが返されます。この選択の前にあったアイテムを入手する方法はありますか?

onItemSelected() 以外のイベントはありますか?

4

3 に答える 3

0

間違った答え、質問の誤解

youronItemSelected()が呼び出されると、position引数が与えられます。position - 1選択した要素の前の要素の位置を知るために使用できます。スピナー要素の配置が似ている要素の対応する配列がある場合はcorresponding_spinner_array[position-1]、目的の要素が得られるはずです。

質問のリフレーミング後

単一の変数ですべての選択を覚えていないのはなぜですか?

更新された例:

    String[] items = {"a","b","c"};
    String selectedItem;
    /*get your spinner element from your XML layout*/
    /*or if you already have access to it, no need for this*/
    Spinner spin = (Spinner) findViewById(R.id.spinner);
    spin.setOnItemSelectedListener(this);

    ArrayAdapter<String> aa = new ArrayAdapter<String>(this,
    android.R.layout.simple_spinner_item, items);

    spin.setAdapter(aa);

    public void onItemSelected(AdapterView<?> parent, View v, int position,
     long id) {
          selectedItem = items[position];     
      }
于 2013-01-07T12:18:49.933 に答える
0

このコードを見てください:

Spinner sp= (Spinner) findViewById(R.id.type_spinner);
sp.setOnItemSelectedListener(this);

これは、選択したスピナー値のメソッドです:

値を選択しない場合は、デフォルトで最初の値が選択されます

public void onItemSelected(AdapterView<?> parent, View view, int position,
        long arg3) {

    String main = (int) parent.getSelectedItemId();

    Log.e("Spinner Value",main);

}
于 2013-01-07T12:20:59.533 に答える
0

おそらくそうではありませんが、自分の価値を維持する必要があります。AdapterView にはmOldSelectedPositionフィールドがありますが、アクセスできません。

于 2013-01-07T12:40:36.393 に答える