2014-12-12 9:15:53 25 人阅读
ToggleButton也是由Button派生出来的。从界面上来看,它与CheckBox复选框非常相似,它们都可以提供两个状态。
不过ToggleButton与CheckBox的区别主要体现在功能上,ToggleButton通常用于切换程序中的某种状态。
表2.11显示了 ToggleButton所支持的XML属性及相关方法的说明。
表2.11 ToggleButton支持的XML属性及相关方法说明
XML属性 相关方法 说 明
android :checked setChecked(boolean) 设置该按钮是否被选屮
androiditextOff 设与该按钮没有被选屮时显示的文本
android:rextO 设‘ff袅该按钮被选中时显示的文本
下面通过一个动态控制布局的实例来示范ToggleButton的用法。
( IP实例:动态控制布局该实例的思路是在页面中增加一个ToggleButton,随着该按钮状态的改变,界面布局中 的LinearLayout布局的方向在水平布局、垂直布局之间切换。下面是该程序所使用的界面布局。
程序清单:ToggleButtonTest\resMayout\main.xml
<?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"
>
<!-- 定义一个ToggleButton按钮 -->
<ToggleButton android:id="@+id/toggle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textOff="横向排列"
android:textOn="纵向排列"
android:checked="true"
/>
<!-- 定义一个可以动态改变方向的线性布局 -->
<LinearLayout android:id="@+id/test"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="测试按钮一"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="测试按钮二"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="测试按钮三"
/>
</LinearLayout>
</LinearLayout>
上面LinearLayout中定义了三个按钮,该LinearLayout默认采用垂直方向的线性布局。 接下来我们为页面上的ToggleBimon按钮绑定一个监听器,当它的选中状态发生改变时,程序通过代码来改变LinearLayout的布局方向。
程序清单:\org\crazyit\togglebutton\ToggleButtonTest.java
package org.crazyit.togglebutton;
import android.app.Activity;
import android.os.Bundle;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.LinearLayout;
import android.widget.ToggleButton;
public class ToggleButtonTest extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ToggleButton toggle = (ToggleButton)findViewById(R.id.toggle);
final LinearLayout test = (LinearLayout)findViewById(R.id.test);
toggle.setOnCheckedChangeListener(new OnCheckedChangeListener()
{
@Override
public void onCheckedChanged(CompoundButton arg0, boolean arg1)
{
if(arg1)
{
//设置LinearLayout垂直布局
test.setOrientation(1);
}
else
{
//设置LinearLayout水平布局
test.setOrientation(0);
}
}
});
}
}
运行上面的程序,随着用户改变ToggleButton按钮的 状态,下面界面布局的方向也在不断发生改变。图2.25显 示了 ToggleButton 的界面。
原文地址:http://www.itmmd.com/201412/304.html
该文章由 萌萌的IT人 整理发布,转载须标明出处。
精彩回复