ToggleButton(开关按钮)是Android系统中比较简单的一个组件,是一个具有选中和未选择状态双状态的按钮,并且需要为不同的状态设置不同的显示文本。
ToggleButton常用的XML属性
属性名称
描述
android:disabledAlpha
设置按钮在禁用时透明度。
android:textOff
未选中时按钮的文本
android:textOn
选中时按钮的文本
下面是具体的例子:
第一个例子是通过Toast显示ToggleButton不同的状态时的信息
MainActivity.java
packagecom.android.togglebutton;
importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.widget.Toast;
importandroid.widget.ToggleButton;
publicclassMainActivityextendsActivity {
//声明ToggleButton
privateToggleButton togglebutton;
@Override
publicvoidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
togglebutton = (ToggleButton) findViewById(R.id.togglebutton);
togglebutton.setOnClickListener(newOnClickListener() {
publicvoidonClick(View v) {
// 当按钮第一次被点击时候响应的事件
if(togglebutton.isChecked()) {
Toast.makeText(MainActivity.this,"你喜欢球类运动", Toast.LENGTH_SHORT).show();
}
// 当按钮再次被点击时候响应的事件
else{
Toast.makeText(MainActivity.this,"你不喜欢球类运动", Toast.LENGTH_SHORT).show();
}
}
});
}
}
main.xml
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
android:id="@+id/togglebutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textOn="喜欢"
android:textOff="不喜欢"
/>
strings.xml
你喜不喜欢球类运动?
测试ToggleButton
效果图:
第二个例子通过图片的变化显示ToggleButton不同的状态时的图片
MainActivity.java
packagecom.android.togglebutton;
importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.widget.CompoundButton;
importandroid.widget.CompoundButton.OnCheckedChangeListener;
importandroid.widget.ImageView;
importandroid.widget.ToggleButton;
publicclassMainActivityextendsActivity {
//声明ImageView,ToggleButton
privateImageView imageView;
privateToggleButton toggleButton;
@Override
publicvoidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//通过findViewById获得ImageView,ToggleButton
imageView=(ImageView) findViewById(R.id.imageView);
toggleButton=(ToggleButton)findViewById(R.id.toggleButton);
toggleButton.setOnCheckedChangeListener(newOnCheckedChangeListener(){
publicvoidonCheckedChanged(CompoundButton buttonView,booleanisChecked) {
toggleButton.setChecked(isChecked);
//使用三目运算符来响应按钮变换的事件
imageView.setImageResource(isChecked?R.drawable.pic_on:R.drawable.pic_off);
}
});
}
}
main.xml
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/pic_off"
android:layout_gravity="center_horizontal"
/>
android:id="@+id/toggleButton"
android:layout_width="130dip"
android:layout_height="wrap_content"
android:textOn="开灯"
android:textOff="关灯"
android:layout_gravity="center_horizontal"
/>
效果图: