Android札记(四):Android中的CheckBox

Android笔记(四):Android中的CheckBox

Android自带了丰富的基础组件,这次我们要介绍的CheckBox。

先看本次实例代码的运行效果:

Android札记(四):Android中的CheckBox

 

首先我们在strings.xml中定义CheckBox和显示的TextView中字符串,代码如下:

 

 

    <string name="app_name">AndroidWithCheckBox</string>
    <string name="hobby">你的爱好是:</string>
    <string name="basketball">篮球</string>
    <string name="football">足球</string>

 

而后在main.xml中定义我们的组件,两个CheckBox和一个TextView

<TextView  
	android:id ="@+id/showText"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hobby"
    />
    
<CheckBox 
	android:id="@+id/basketballCheckBox"
	android:text="@string/basketball"
	android:layout_width="wrap_content"
	android:layout_height="wrap_content"
/>  

<CheckBox 
	android:id="@+id/footballCheckBox"
	android:text="@string/football"
	android:layout_width="wrap_content"
	android:layout_height="wrap_content"
/>  

 

在Activity子类中, 先获取到在main.xml中定义的三个组件,而后给CheckBox添加上OnCheckedChangeListener

,具体代码如下:

public class Test extends Activity {
    /** Called when the activity is first created. */
	private TextView view  ;
	private CheckBox basketballCheckBox ;
	private CheckBox footballCheckBox ;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        view = (TextView)findViewById(R.id.showText);
        basketballCheckBox = (CheckBox)findViewById(R.id.basketballCheckBox);
        footballCheckBox = (CheckBox)findViewById(R.id.footballCheckBox);
        
        basketballCheckBox.setOnCheckedChangeListener(cbListener);
        footballCheckBox.setOnCheckedChangeListener(cbListener);
        
    }
    
    private CheckBox.OnCheckedChangeListener cbListener = 
    	new CheckBox.OnCheckedChangeListener(){

			public void onCheckedChanged(CompoundButton arg0, boolean arg1) {
				String hobby = getString(R.string.hobby);
				String basketball = getString(R.string.basketball);
				String football = getString(R.string.football);
				String showText = "";
				
				if(basketballCheckBox.isChecked()&&footballCheckBox.isChecked()){
					view.setText(showText = hobby+basketball+","+football);
				}
				else if(basketballCheckBox.isChecked()&&!footballCheckBox.isChecked()){
					view.setText(showText = hobby+basketball);
				}
				else if(!basketballCheckBox.isChecked()&&footballCheckBox.isChecked()){
					view.setText(showText = hobby+football);
				}
				else{
					view.setText(showText = hobby+"不是下面的两项");
				}
				Toast.makeText(Test.this, showText, Toast.LENGTH_SHORT).show();
			}};
}