usar tutorial switch style studio como android togglebutton

android - tutorial - adjuntar onClickListener a ToggleButton



button en android studio (9)

Para agregarlo desde el código, puede hacer algo como:

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

Sin embargo, también puede especificar en el XML para su botón, qué método desea asociar con la acción / evento onClick.

Tengo un ToggleButton y necesito configurar simples acciones de clic. ¿Cómo implemento un simple oyente de clic para un ToggleButton?

Si necesita detalles, pregunte.


Pruebe el método setOnCheckedChangeListener de su clase ToggleButton

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


Solo para agregar un punto que no se enfatiza en las otras respuestas: vincular programáticamente un manejador de clics es un poco pesado en el código de la placa base. Como se menciona en los documentos , solo es necesario en ciertos escenarios, como por ejemplo:

  • Si ToggleButton se crea una instancia en tiempo de ejecución
  • Si el comportamiento de clic se define en una subclase de Fragmento

Si ToggleButton se define en el diseño, es mucho más simple y más limpio vincular un método de control allí

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

Entonces solo el método del manejador debe definirse en la Actividad Java

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

Tenga en cuenta que el método puede tener cualquier nombre, pero la firma debe cumplir estos criterios:

  • Debe ser un método public
  • Debe devolver el void
  • Debe tomar un solo argumento de tipo View (esta será la View que se hizo clic)

ToggleButton extiende View, por lo que simplemente puede usar View.setOnClickListener() , así:

// 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 } });


Use View.setOnClickListener() y compruebe el estado del botón.

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


si los códigos anteriores no funcionan, intente

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


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


@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`


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