Подтвердить что ты не робот

Прикрепить onClickListener to ToggleButton

У меня есть ToggleButton, и мне нужно настроить простые действия щелчка. Как реализовать простой клик для ToggleButton?

Если вам нужны детали, пожалуйста, спросите.

4b9b3361

Ответ 1

ToggleButton расширяет представление, поэтому вы можете просто использовать View.setOnClickListener(), например:

// get your ToggleButton
ToggleButton b = (ToggleButton) findViewById(R.id.myButton);

// attach an OnClickListener
b.setOnClickListener(new OnClickListener()
{
    @Override
    public void onClick(View v)
    {
        // your click actions go here
    }
});

Ответ 2

    this.someToggleButton = (ToggleButton)findViewById(R.id.someToggleButton) ;
    this.someToggleButton.setOnCheckedChangeListener( new OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton toggleButton, boolean isChecked) {
            doSomethingWith(toggleButton, isChecked) ;
        }
    }) ;

Ответ 3

Используйте View.setOnClickListener() и проверьте состояние кнопки.

    final ToggleButton tB = (ToggleButton) findViewById(R.id.toggleButton1);
    tB.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            if(tB.isChecked()){
                //Button is ON
                            // Do Something 
            }
            else
            //Button is OFF
                            // Do Something     
        }
    });

Ответ 4

Просто добавьте точку, не подчеркнутую в других ответах, - программная привязка обработчика кликов немного тяжела для кода bolierplate. Как упоминалось в документах, это необходимо только в определенных сценариях, таких как:

  • Если ToggleButton создается во время выполнения
  • Если поведение клика определено в подклассе Fragment

Если ToggleButton определен в макете, намного проще и чище привязать метод обработчика

<ToggleButton 
  android:id="@+id/togglebutton"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:textOn="On"
  android:textOff="Off"
  android:onClick="onToggleClicked"/>

Тогда только метод обработчика должен быть определен в Activity Java

public void onToggleClicked(View view) {
    if(((ToggleButton) view).isChecked()) {
        // handle toggle on
    } else {
       // handle toggle off
    }    
}

Обратите внимание, что метод может иметь любое имя, но подпись должна соответствовать этим критериям:

  • Должен быть метод public
  • Должен возвращать void
  • Необходимо принять один аргумент типа View (это будет нажатие View)

Ответ 5

Чтобы добавить его из кода, вы можете сделать что-то вроде:

yourButton.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
      finish();
    }
  });

Однако вы также можете указать в XML для своей кнопки, какой метод вы хотите связать с действием/событием onClick.

Ответ 6

mTB = (ToggleButton) findViewById(R.id.toggleButton1);
mTB.setOnClickListener(new OnClickListener()
    {
        @Override
        public void onClick(View v)
        {
            // Is the toggle on?
            boolean on = ((ToggleButton) v).isChecked();

            if (on) {
                // Enable here
            } else {
                // Disable here
            }

        }
    });

Ответ 7

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

        Toast.makeText(getApplicationContext(),"on",Toast.LENGTH_SHORT).show();

    }else{
        Toast.makeText(getApplicationContext(),"off",Toast.LENGTH_SHORT).show();
    }
}`enter code here`

Ответ 8

если выше коды не работают, попробуйте

b.setOnClickListener(new View.OnClickListener()
{
    @Override
    public void onClick(View v)
    {
       // your click actions go here
    }
});

Ответ 9

Попробуйте setOnCheckedChangeListener метод ToggleButton класс

ToggleButton toggleButton = (ToggleButton) findViewById(R.id.toggleButton);
toggleButton.setOnCheckedChangeListener(new OnCheckedChangeListener() {
    @Override
    public void onCheckedChanged(CompoundButton toggleButton, boolean isChecked) {
        // 
    }
}) ;