отключить флажок после проверки, Android

Я хочу добиться этого: пользователь проверяет неотмеченный флажок, отображается тост, затем флажок становится отключенным.

male.setOnCheckedChangeListener(new OnCheckedChangeListener(){

    @Override
    public void onCheckedChanged(CompoundButton arg0, boolean isChecked) {
   // TODO Auto-generated method stub
   if (isChecked){
    Toast.makeText(CheckBoxTuts.this, "male" , Toast.LENGTH_SHORT).show();
    male.setChecked(false);

   }
    }

       });

вывод не удался, потому что они выполняются в одно и то же время, даже я поместил male.setChecked(false) снаружи.. Я не могу вспомнить, есть ли что-то для запуска чего-то 1-го, а затем другое.. это поток? действительно не могу вспомнить


person cgpa2.17    schedule 03.10.2012    source источник


Ответы (4)


Если вы хотите добиться: «проверка пользователем неотмеченного флажка, отображение всплывающего уведомления, затем флажок становится отключенным..», вы должны попробовать этот код:

male.setOnCheckedChangeListener(new OnCheckedChangeListener(){

    @Override
    public void onCheckedChanged(CompoundButton arg0, boolean isChecked) {                   
      if (isChecked){
          Toast.makeText(CheckBoxTuts.this, "male" , Toast.LENGTH_SHORT).show();
          male.setEnabled(false); // disable checkbox 
      }
    }    
});
person Hiral Vadodaria    schedule 03.10.2012
comment
Я использовал ваш код, чтобы проверить, работает ли он, но setEnabled (false) не работает. - person Terril Thomas; 03.10.2012
comment
@ErrorHandler: это не недопустимый метод, так как он не может работать? с какой проблемой вы столкнулись? - person Hiral Vadodaria; 03.10.2012
comment
Он остается отмеченным, даже если setenabled имеет значение false - person Terril Thomas; 03.10.2012
comment
@ErrorHandler: он отключает флажок, это не означает изменение статуса флажка. Он останется только отмеченным. Он просто не позволит вам изменить его состояние, как только он перейдет в отмеченное состояние. - person Hiral Vadodaria; 03.10.2012
comment
так что даже SetChecked(false) работает, так как он дает false, пока вы отлаживаете - person Terril Thomas; 03.10.2012
comment
@ErrorHandler: он хотел отключить флажок, а не снимать его ... и вы не можете отключить флажок, используя setChecked (false). Он меняет статус флажка на false. пожалуйста, прочитайте документ и вопрос для получения дополнительной информации. - person Hiral Vadodaria; 03.10.2012
comment
давайте продолжим это обсуждение в чате - person Hiral Vadodaria; 03.10.2012

Попробуй это....

- Используйте setEnabled(false) на CheckBox

male.setOnCheckedChangeListener(new OnCheckedChangeListener(){

    @Override
    public void onCheckedChanged(CompoundButton arg0, boolean isChecked) {                   
      if (isChecked){

          Toast.makeText(CheckBoxTuts.this, "male" , Toast.LENGTH_SHORT).show();

          male.setEnabled(false);   // Will Disable checkbox 
      }
    }    
});
person Kumar Vivek Mitra    schedule 03.10.2012

Попробуйте использовать .onClickListener(View.OnClickListener) с реализованным View.OnClickListener. В теле реализованного метода вы проверите, отмечен ли CheckBox или нет, и установите их.

person Pawel    schedule 03.10.2012
comment
Ох на самом деле. Чтобы установить включенное/отключенное состояние, вам нужно использовать View.setEnabled (логическое значение). - person Pawel; 03.10.2012
comment
Использование View.setVisibilty(int) установит, отображается ли компонент или нет. - person Pawel; 03.10.2012
comment
Вам нужно проверить, проверен ли checkBox с помощью метода CheckBox.isChecked(). - person Pawel; 03.10.2012

Во-первых, зарегистрируйте свой CheckBox в OnCheckedChangeListener.

chk.setOnCheckedChangeListener(this);

затем переопределяет метод

 @Override
    public void onCheckedChanged(CompoundButton compoundButton, boolean b)
    {
        if (chk.isChecked())
        {
           chk.setEnabled(false);
        }
    }
person Sandeep Patel    schedule 20.04.2018