The ToggleButton status can only be selected or not selected, and different display text needs to be set for different states.
The following uses ToggleButton:
Directory structure
Main. xml layout File
Copy codeThe Code is as follows: <? Xml version = "1.0" encoding = "UTF-8"?>
<LinearLayout xmlns: android = "http://schemas.android.com/apk/res/android"
Android: orientation = "vertical"
Android: layout_width = "fill_parent"
Android: layout_height = "fill_parent">
<ImageView android: id = "@ + id/imageView"
Android: layout_width = "wrap_content"
Android: layout_height = "wrap_content"
Android: src = "@ drawable/bulb_off"
Android: layout_gravity = "center_horizontal"/>
<ToggleButton android: id = "@ + id/toggleButton"
Android: layout_width = "140dip"
Android: layout_height = "wrap_content"
Android: textOn = "turn on the light"
Android: textOff = "turn off the light"
Android: layout_gravity = "center_horizontal"/>
</LinearLayout>
ToggleButtonActivity class
Copy codeThe Code is as follows: package com. ljq. tb;
Import android. app. Activity;
Import android. OS. Bundle;
Import android. widget. CompoundButton;
Import android. widget. ImageView;
Import android. widget. ToggleButton;
Import android. widget. CompoundButton. OnCheckedChangeListener;
Public class ToggleButtonActivity extends Activity {
Private ImageView imageView = null;
Private ToggleButton toggleButton = null;
@ Override
Public void onCreate (Bundle savedInstanceState ){
Super. onCreate (savedInstanceState );
SetContentView (R. layout. main );
ImageView = (ImageView) findViewById (R. id. imageView );
ToggleButton = (ToggleButton) findViewById (R. id. toggleButton );
ToggleButton. setOnCheckedChangeListener (new OnCheckedChangeListener (){
Public void onCheckedChanged (CompoundButton buttonView,
Boolean isChecked ){
ToggleButton. setChecked (isChecked );
ImageView. setImageResource (isChecked? R. drawable. bulb_on: R. drawable. bulb_off );
}
});
}
}
Running effect: