activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/linear_1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<ImageView
android:id="@+id/image_1"
android:layout_width="150dp"
android:layout_height="150dp"
android:contentDescription="@string/deng"
android:src="@drawable/bulb_off"
android:text="@string/hello_world" />
<LinearLayout
android:id="@+id/linear_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingLeft="10dip"
android:paddingTop="10dip" >
<ToggleButton
android:id="@+id/toggle"
android:layout_width="140dip"
android:layout_height="wrap_content"
android:textOff="@string/off"
android:textOn="@string/on" />
<RadioGroup
android:id="@+id/radio_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<RadioButton
android:id="@+id/button_off"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:text="@string/off" />
<RadioButton
android:id="@+id/button_on"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/on" />
</RadioGroup>
<CheckBox
android:id="@+id/check"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/on" />
</LinearLayout>
</LinearLayout>
string.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">ToggleButton</string>
<string name="action_settings">Settings</string>
<string name="hello_world">Hello world!</string>
<string name="deng">灯</string>
<string name="on">开灯</string>
<string name="off">关灯</string>
</resources>
MainActivity.java
package com.malakana.togglebutton;
import android.os.Bundle;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.ImageView;
import android.widget.RadioButton;
import android.widget.ToggleButton;
import android.app.Activity;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ToggleButton tb = (ToggleButton) findViewById(R.id.toggle);
tb.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton arg0, boolean arg1) {
// TODO Auto-generated method stub
setBulbState(arg1);
}
});
CheckBox cb = (CheckBox) this.findViewById(R.id.check);
cb.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton arg0, boolean arg1) {
// TODO Auto-generated method stub
setBulbState(arg1);
}
});
RadioButton rb = (RadioButton) findViewById(R.id.button_off);
rb.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton arg0, boolean arg1) {
// TODO Auto-generated method stub
setBulbState(!arg1);
}
});
}
public void setBulbState(boolean state) {
// TODO Auto-generated method stub
ImageView iv = (ImageView) findViewById(R.id.image_1);
iv.setImageResource((state) ? R.drawable.bulb_on : R.drawable.bulb_off);
ToggleButton tb = (ToggleButton) findViewById(R.id.toggle);
tb.setChecked(state);
CheckBox cb = (CheckBox) findViewById(R.id.check);
//cb.setText((state) ? R.string.on : R.string.off);
cb.setChecked(state);
RadioButton rb = (RadioButton) findViewById(R.id.button_off);
rb.setChecked(!state);
rb = (RadioButton) findViewById(R.id.button_on);
rb.setChecked(state);
}
}