2014-08-28 2 views
0

Привет, ребята, у меня есть макет, содержащий 4 кнопки переключения. Первый из них всегда включен или включен. Когда я включаю второй, остальные три должны быть отключены или отключены автоматически. остальные остальные два. Один раз должен быть включен только один переключатель.ToggleButtons in android

Я сделал функцию для этого, используя кнопки переключателя setchecked (логический флаг), установив его в true или false. Но кнопки не меняют свое состояние динамически.

это метод ..

public void setChoicesStates(boolean nameToggle,boolean surnameToggle,boolean emailToggle,boolean groupToggle) 
    { 
     mNameToggle.setChecked(nameToggle); 
     mSurnameToggle.setChecked(surnameToggle); 
     mEmailToggle.setChecked(emailToggle); 
     mGroupToggle.setChecked(groupToggle); 
    } 

, а затем установить состояние истину или ложь в чеке изменился слушатель назначенного на кнопки переключения. Спасибо за помощь заранее.

+0

вы можете проверить с "buttonToToggle.toggle();" –

ответ

1

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

ToggleButton tb1, tb2, tb3, tb4; 
tb1 = (ToggleButton) findViewById(R.id.toggleButton1); 
     tb2 = (ToggleButton) findViewById(R.id.toggleButton2); 
     tb3 = (ToggleButton) findViewById(R.id.toggleButton3); 
     tb4 = (ToggleButton) findViewById(R.id.toggleButton4); 
     tb1.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       if (tb1.isChecked()) { 
        tb2.setChecked(false); 
        tb3.setChecked(false); 
        tb4.setChecked(false); 

       } 
      } 
     }); 
     tb2.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       if (tb2.isChecked()) { 
        tb1.setChecked(false); 
        tb3.setChecked(false); 
        tb4.setChecked(false); 

       } 
      } 
     }); 
     tb3.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       if (tb3.isChecked()) { 
        tb1.setChecked(false); 
        tb2.setChecked(false); 
        tb4.setChecked(false); 

       } 
      } 
     }); 
     tb4.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       if (tb4.isChecked()) { 
        tb2.setChecked(false); 
        tb3.setChecked(false); 
        tb1.setChecked(false); 

       } 
      } 
     }); 
+0

Я использовал проверку измененного прослушивателя .. и мой метод работал.thanks много. Просто нужно было вызвать метод в нужном месте. Спасибо. Но я тоже попробую это. Посмотрите, какой из них лучше. – AndroidMech