CheckBox练习
效果图:
checkbox 和 radioButton 相比,不需要 RadioGroup ,每个 checkbox 是单独的控件,使用很简单 isChecked 是获取是否选择中,选择时有 CheckedChangeListener 监听,具体请看代码
java 代码,该代码简化了在每个chekcbox 中写 setOnCheckedChangeListener 监听代码
package zziss.android.checkboxtest;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.Toast;
public class CheckBoxTestActivity extends Activity {
/** Called when the activity is first created. */
private CheckBox cb_red;
private CheckBox cb_blue;
private CheckBox cb_gray;
private CheckBox cb_green;
private Button btn_chose;
private CheckListener listener;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
cb_red = (CheckBox)this.findViewById(R.id.cb_red);
cb_blue = (CheckBox)this.findViewById(R.id.cb_blue);
cb_gray = (CheckBox)this.findViewById(R.id.cb_gray);
cb_green = (CheckBox)this.findViewById(R.id.cb_green);
btn_chose = (Button)this.findViewById(R.id.btn);
listener = new CheckListener();
listener.iActivity = this;
cb_red.setOnCheckedChangeListener(listener);
cb_blue.setOnCheckedChangeListener(listener);
cb_gray.setOnCheckedChangeListener(listener);
cb_green.setOnCheckedChangeListener(listener);
btn_chose.setOnClickListener(listener);
}
public void showInfo(String str)
{
Toast toast = Toast.makeText(this,str,Toast.LENGTH_SHORT);
toast.show();
}
public void showCheckTexts()
{
String s = "";
s += cb_red.isChecked()?cb_red.getText().toString()+";":"";
s += cb_blue.isChecked()?cb_blue.getText().toString()+";":"";
s += cb_gray.isChecked()?cb_gray.getText().toString()+";":"";
s += cb_green.isChecked()?cb_green.getText().toString()+";":"";
showInfo(s);
}
}
class CheckListener implements
android.widget.CompoundButton.OnCheckedChangeListener,
android.view.View.OnClickListener
{
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// TODO Auto-generated method stub
iActivity.showInfo(buttonView.getText().toString());
}
public CheckBoxTestActivity iActivity;
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
iActivity.showCheckTexts();
}
}
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.Toast;
public class CheckBoxTestActivity extends Activity {
/** Called when the activity is first created. */
private CheckBox cb_red;
private CheckBox cb_blue;
private CheckBox cb_gray;
private CheckBox cb_green;
private Button btn_chose;
private CheckListener listener;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
cb_red = (CheckBox)this.findViewById(R.id.cb_red);
cb_blue = (CheckBox)this.findViewById(R.id.cb_blue);
cb_gray = (CheckBox)this.findViewById(R.id.cb_gray);
cb_green = (CheckBox)this.findViewById(R.id.cb_green);
btn_chose = (Button)this.findViewById(R.id.btn);
listener = new CheckListener();
listener.iActivity = this;
cb_red.setOnCheckedChangeListener(listener);
cb_blue.setOnCheckedChangeListener(listener);
cb_gray.setOnCheckedChangeListener(listener);
cb_green.setOnCheckedChangeListener(listener);
btn_chose.setOnClickListener(listener);
}
public void showInfo(String str)
{
Toast toast = Toast.makeText(this,str,Toast.LENGTH_SHORT);
toast.show();
}
public void showCheckTexts()
{
String s = "";
s += cb_red.isChecked()?cb_red.getText().toString()+";":"";
s += cb_blue.isChecked()?cb_blue.getText().toString()+";":"";
s += cb_gray.isChecked()?cb_gray.getText().toString()+";":"";
s += cb_green.isChecked()?cb_green.getText().toString()+";":"";
showInfo(s);
}
}
class CheckListener implements
android.widget.CompoundButton.OnCheckedChangeListener,
android.view.View.OnClickListener
{
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// TODO Auto-generated method stub
iActivity.showInfo(buttonView.getText().toString());
}
public CheckBoxTestActivity iActivity;
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
iActivity.showCheckTexts();
}
}
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/info" />
<CheckBox
android:id="@+id/cb_red"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/cb_red"
/>
<CheckBox
android:id="@+id/cb_blue"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/cb_blue"
/>
<CheckBox
android:id="@+id/cb_gray"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/cb_gray"
/>
<CheckBox
android:id="@+id/cb_green"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/cb_green"
/>
<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btn_chose"
/>
</LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/info" />
<CheckBox
android:id="@+id/cb_red"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/cb_red"
/>
<CheckBox
android:id="@+id/cb_blue"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/cb_blue"
/>
<CheckBox
android:id="@+id/cb_gray"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/cb_gray"
/>
<CheckBox
android:id="@+id/cb_green"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/cb_green"
/>
<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btn_chose"
/>
</LinearLayout>
String.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="info">checkbox练习</string>
<string name="app_name">CheckBoxTest</string>
<string name="cb_red">红色</string>
<string name="cb_blue">蓝色</string>
<string name="cb_gray">灰色</string>
<string name="cb_green">绿色</string>
<string name="btn_chose">查看选择</string>
</resources>
<resources>
<string name="info">checkbox练习</string>
<string name="app_name">CheckBoxTest</string>
<string name="cb_red">红色</string>
<string name="cb_blue">蓝色</string>
<string name="cb_gray">灰色</string>
<string name="cb_green">绿色</string>
<string name="btn_chose">查看选择</string>
</resources>