1

私のコードは次のとおりです。

spin2.setOnItemSelectedListener(new OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View arg1,
                int position, long id) {
                Toast.makeText(getApplicationContext(), "item selected",
                    Toast.LENGTH_SHORT).show();
            }
        @Override
        public void onNothingSelected(AdapterView<?> arg0) {
            // TODO Auto-generated method stub
        }
        }
    );

スピナーに setSelectedItem を次のように実装しました。

spin2.setSelection(new Date().getMonth());

アイテム選択時にトーストを表示させたい。自動的に表示されるべきではありません。

4

1 に答える 1

2

こちらToastは自動表示されません。

spin2.setSelection(new Date().getMonth());プログラムでアイテムを選択するために使用しています。したがって、この行が実行されるたびOnItemSelectedListenerに呼び出されます。

これを取り除くには、何らかのフラグ (ブール変数) を使用する必要があります。

このようなもの

//set flag to false before selection
spin2.setSelection(new Date().getMonth());


spin2.setOnItemSelectedListener(new OnItemSelectedListener() {
    @Override
    public void onItemSelected(AdapterView<?> parent, View arg1,
            int position, long id) {
         if(flag is true){
            Toast.makeText(getApplicationContext(), "item selected",
                Toast.LENGTH_SHORT).show();
             }else{
                 //then set flag to true here
             }
        }
    @Override
    public void onNothingSelected(AdapterView<?> arg0) {
        // TODO Auto-generated method stub
    }
    }
);
于 2013-09-24T03:45:26.780 に答える