2013-09-24 3 views
1

Мой код:Как отключить событие OnClick на Spinner автоматически?

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()); 

Я хочу, чтобы тост, который будет отображаться при выборе пункта. Он не должен отображаться автоматически.

+0

spin2.setEnabled (ложь); –

ответ

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 
    } 
    } 
); 
+1

попробуйте обновленный ответ. –

Смежные вопросы