page.title=Toggle Buttons
page.tags=switch,togglebutton
@jd:body

<div id="qv-wrapper">
<div id="qv">
<h2>In this document</h2>
<ol>
  <li>
    <a href="#ClickListener">Responding to Button Presses</a>
  </li>
</ol>
  <h2>Key classes</h2>
  <ol>
    <li>{@link android.widget.ToggleButton}</li>
    <li>{@link android.widget.Switch}</li>
    <li>{@link android.widget.CompoundButton}</li>
  </ol>
</div>
</div>

<p>A toggle button allows the user to change a setting between two states.</p>

<p>You can add a basic toggle button to your layout with the {@link android.widget.ToggleButton}
object. Android 4.0 (API level 14) introduces another kind of toggle button called a switch that
provides a slider control, which you can add with a {@link android.widget.Switch} object.</p>

<p>
  If you need to change a button's state yourself, you can use the {@link
  android.widget.CompoundButton#setChecked CompoundButton.setChecked()} or
  {@link android.widget.CompoundButton#toggle CompoundButton.toggle()} methods.
</p>

<div style="float:left;width:200px">
<img src="{@docRoot}images/ui/togglebutton.png" alt="" />
<p class="img-caption"><em>Toggle buttons</em></p>
</div>

<div style="float:left;width:200px;margin-top:24px">
<img src="{@docRoot}images/ui/switch.png" alt="" />
<p class="img-caption"><em>Switches (in Android 4.0+)</em></p>
</div>

<h2 id="ClickListener">Responding to Button Presses</h2>

<p>
  To detect when the user activates the button or switch, create an {@link
  android.widget.CompoundButton.OnCheckedChangeListener} object and assign it
  to the button by calling {@link
  android.widget.CompoundButton#setOnCheckedChangeListener
  setOnCheckedChangeListener()}. For example:
</p>

<pre>
ToggleButton toggle = (ToggleButton) findViewById(R.id.togglebutton);
toggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        if (isChecked) {
            // The toggle is enabled
        } else {
            // The toggle is disabled
        }
    }
});
</pre>