150e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Mainpage.title=Toggle Buttons 233baa5ad7d8cdcc89ce4fbc3bc8cd537d5f5d639Joe Fernandezpage.tags=switch,togglebutton 350e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main@jd:body 450e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main 550e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main<div id="qv-wrapper"> 650e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main<div id="qv"> 750e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main<h2>In this document</h2> 850e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main<ol> 907e7021e062dd3579f662502b15c0682c4672cfeAndrew Solovay <li> 1007e7021e062dd3579f662502b15c0682c4672cfeAndrew Solovay <a href="#ClickListener">Responding to Button Presses</a> 1150e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </li> 1250e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main</ol> 1350e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <h2>Key classes</h2> 1450e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <ol> 1550e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li>{@link android.widget.ToggleButton}</li> 1650e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li>{@link android.widget.Switch}</li> 1707e7021e062dd3579f662502b15c0682c4672cfeAndrew Solovay <li>{@link android.widget.CompoundButton}</li> 1850e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </ol> 1950e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main</div> 2050e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main</div> 2150e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main 2250e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main<p>A toggle button allows the user to change a setting between two states.</p> 2350e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main 2450e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main<p>You can add a basic toggle button to your layout with the {@link android.widget.ToggleButton} 2550e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Mainobject. Android 4.0 (API level 14) introduces another kind of toggle button called a switch that 2650e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Mainprovides a slider control, which you can add with a {@link android.widget.Switch} object.</p> 2750e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main 2807e7021e062dd3579f662502b15c0682c4672cfeAndrew Solovay<p> 2907e7021e062dd3579f662502b15c0682c4672cfeAndrew Solovay If you need to change a button's state yourself, you can use the {@link 3007e7021e062dd3579f662502b15c0682c4672cfeAndrew Solovay android.widget.CompoundButton#setChecked CompoundButton.setChecked()} or 3107e7021e062dd3579f662502b15c0682c4672cfeAndrew Solovay {@link android.widget.CompoundButton#toggle CompoundButton.toggle()} methods. 3207e7021e062dd3579f662502b15c0682c4672cfeAndrew Solovay</p> 3307e7021e062dd3579f662502b15c0682c4672cfeAndrew Solovay 3450e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main<div style="float:left;width:200px"> 3550e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main<img src="{@docRoot}images/ui/togglebutton.png" alt="" /> 3650e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main<p class="img-caption"><em>Toggle buttons</em></p> 3750e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main</div> 3850e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main 3950e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main<div style="float:left;width:200px;margin-top:24px"> 4050e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main<img src="{@docRoot}images/ui/switch.png" alt="" /> 4150e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main<p class="img-caption"><em>Switches (in Android 4.0+)</em></p> 4250e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main</div> 4350e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main 4407e7021e062dd3579f662502b15c0682c4672cfeAndrew Solovay<h2 id="ClickListener">Responding to Button Presses</h2> 4550e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main 4607e7021e062dd3579f662502b15c0682c4672cfeAndrew Solovay<p> 4707e7021e062dd3579f662502b15c0682c4672cfeAndrew Solovay To detect when the user activates the button or switch, create an {@link 4807e7021e062dd3579f662502b15c0682c4672cfeAndrew Solovay android.widget.CompoundButton.OnCheckedChangeListener} object and assign it 4907e7021e062dd3579f662502b15c0682c4672cfeAndrew Solovay to the button by calling {@link 5007e7021e062dd3579f662502b15c0682c4672cfeAndrew Solovay android.widget.CompoundButton#setOnCheckedChangeListener 5107e7021e062dd3579f662502b15c0682c4672cfeAndrew Solovay setOnCheckedChangeListener()}. For example: 5207e7021e062dd3579f662502b15c0682c4672cfeAndrew Solovay</p> 5350e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main 5450e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main<pre> 5550e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott MainToggleButton toggle = (ToggleButton) findViewById(R.id.togglebutton); 5650e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Maintoggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 5750e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 5850e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main if (isChecked) { 5950e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main // The toggle is enabled 6050e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main } else { 6150e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main // The toggle is disabled 6250e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main } 6350e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main } 6450e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main}); 6550e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main</pre> 66