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