在本章教程中,我們將會學習CheckBox——複選框控制項的使用。
複選框幾乎出現在所有的App中,是因為它易於操作和使用,而且功能強大。
至於怎麼使用這個控制項,我們手把手來學習吧。
第一步,建立一個工程Ep.CheckBox,視圖和活動我都沒改名。
第二步,簡單設計一下視圖activity_main.xml。
[java
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="你的愛好:" />
<CheckBox
android:id="@+id/checkBox1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView1"
android:layout_below="@+id/textView1"
android:layout_marginTop="16dp"
android:text="籃球" />
<CheckBox
android:id="@+id/checkBox2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/checkBox1"
android:layout_below="@+id/checkBox1"
android:text="足球" />
</RelativeLayout>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="你的愛好:" />
<CheckBox
android:id="@+id/checkBox1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView1"
android:layout_below="@+id/textView1"
android:layout_marginTop="16dp"
android:text="籃球" />
<CheckBox
android:id="@+id/checkBox2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/checkBox1"
android:layout_below="@+id/checkBox1"
android:text="足球" />
</RelativeLayout>
第三步,碼農最愛,MainActivity.java。
[java]
package com.example.ep.checkbox;
import android.os.Bundle;
import android.app.Activity;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.TextView;
public class MainActivity extends Activity {
private TextView tv;
private CheckBox cb1,cb2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//綁定視圖中的控制項
tv=(TextView)findViewById(R.id.textView1);
cb1=(CheckBox)findViewById(R.id.checkBox1);
cb2=(CheckBox)findViewById(R.id.checkBox2);
//監聽複選框選擇事件
cb1.setOnCheckedChangeListener(cbListener);
cb2.setOnCheckedChangeListener(cbListener);
}
private CheckBox.OnCheckedChangeListener cbListener = new CheckBox.OnCheckedChangeListener(){
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
String stv = "您的愛好是:";
String scb1 = cb1.getText().toString();
String scb2 = cb2.getText().toString();
//判斷選擇事件
if(cb1.isChecked()== true && cb2.isChecked()== true)
{
tv.setText(stv + scb1 + "," + scb2);
}
else if(cb1.isChecked()== true && cb2.isChecked()== false)
{
tv.setText(stv+scb1);
}
else if(cb1.isChecked() == false && cb2.isChecked() == true)
{
tv.setText(stv+scb2);
}
else{
tv.setText(stv);
}
}
};
}
package com.example.ep.checkbox;
import android.os.Bundle;
import android.app.Activity;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.TextView;
public class MainActivity extends Activity {
private TextView tv;
private CheckBox cb1,cb2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//綁定視圖中的控制項
tv=(TextView)findViewById(R.id.textView1);
cb1=(CheckBox)findViewById(R.id.checkBox1);
cb2=(CheckBox)findViewById(R.id.checkBox2);
//監聽複選框選擇事件
cb1.setOnCheckedChangeListener(cbListener);
cb2.setOnCheckedChangeListener(cbListener);
}
private CheckBox.OnCheckedChangeListener cbListener = new CheckBox.OnCheckedChangeListener(){
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
String stv = "您的愛好是:";
String scb1 = cb1.getText().toString();
String scb2 = cb2.getText().toString();
//判斷選擇事件
if(cb1.isChecked()== true && cb2.isChecked()== true)
{
tv.setText(stv + scb1 + "," + scb2);
}
else if(cb1.isChecked()== true && cb2.isChecked()== false)
{
tv.setText(stv+scb1);
}
else if(cb1.isChecked() == false && cb2.isChecked() == true)
{
tv.setText(stv+scb2);
}
else{
tv.setText(stv);
}
}
};
}
循例,最後上一張測試結果圖。