zoukankan      html  css  js  c++  java
  • Android 开发之CheckBox

    本文采用SDK版本 Android 4.2.2

    CheckBox就是我们平常上网看到的复选框,即多选控件,比如:我们注册用户的时候经常可以看到,也是Android中经常用到的。

    关于CheckBox有2个重要事件;

    •  OnClickListener            CheckBox点击是触发
    • OnCheckedChangeListener   改变CheckBox选择状态是触发

    首先,我们来看下第一个事件,具体代码如下:

    布局文件:activity_main.xml

    <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" >
    
        <CheckBox
            android:id="@+id/cbox1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="玩游戏"
             />
        <CheckBox
            android:id="@+id/cbox2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/cbox1"
            android:text="睡觉"
             />
        <CheckBox
            android:id="@+id/cbox3"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/cbox2"
            android:text="吃饭"
             />
    
        
    </RelativeLayout>
    

     java文件

    package com.zhoucj.messagedemo;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.CheckBox;
    import android.widget.TextView;
    import android.widget.Toast;
    
    public class MainActivity extends Activity {
    
    	CheckBox cbox1;
    	CheckBox cbox2;
    	CheckBox cbox3;
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    		
    		cbox1=(CheckBox)findViewById(R.id.cbox1);
    		cbox2=(CheckBox)findViewById(R.id.cbox2);
    		cbox3=(CheckBox)findViewById(R.id.cbox3);
    		
    		cbox1.setOnClickListener(new cbox());
    		cbox2.setOnClickListener(new cbox());
    		cbox3.setOnClickListener(new cbox());
    	}
    	
    	class cbox implements OnClickListener
    	{
    		@Override
    		public void onClick(View v) {
    			if(v.getId()==R.id.cbox1)
    			{
    				showToast("您选择了玩游戏");
    			}else if(v.getId()==R.id.cbox2)
    			{
    				showToast("您选择了睡觉");
    			}else if(v.getId()==R.id.cbox3)
    			{
    				showToast("您选择了吃饭");
    			}
    			
    		}
    	}
    	
    	public void showToast(String msg)
    	{
    		Toast.makeText(this, msg, 2000).show();
    	}
    	
    	@Override
    	public boolean onCreateOptionsMenu(Menu menu) {
    		// Inflate the menu; this adds items to the action bar if it is present.
    		getMenuInflater().inflate(R.menu.main, menu);
    		return true;
    	}
    
    }
    

     运行结果:

    可以看出,OnClickListener    不管你选没选中,都会触发。也就是说,只要当用户点击了,就触发了该事情。

    下面我们来看看OnCheckedChangeListener  这个事情使用方法。

    布局文件和上面的是一样的,这里只把java代码贴出来。

    package com.zhoucj.messagedemo;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.CheckBox;
    import android.widget.CompoundButton;
    import android.widget.CompoundButton.OnCheckedChangeListener;
    import android.widget.TextView;
    import android.widget.Toast;
    
    public class MainActivity extends Activity {
    
    	CheckBox cbox1;
    	CheckBox cbox2;
    	CheckBox cbox3;
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    		
    		cbox1=(CheckBox)findViewById(R.id.cbox1);
    		cbox2=(CheckBox)findViewById(R.id.cbox2);
    		cbox3=(CheckBox)findViewById(R.id.cbox3);
    		
    		cbox1.setOnCheckedChangeListener(new cbox());
    		cbox2.setOnCheckedChangeListener(new cbox());
    		cbox3.setOnCheckedChangeListener(new cbox());
    	}
    	
    	class cbox implements OnCheckedChangeListener
    	{
    		//buttonView:被选中 那个CheckBox对象,既你选择了那个CheckBox返回那个该控件的对象
    		//isChecked:返回该CheckBox是否选中
    		@Override
    		public void onCheckedChanged(CompoundButton buttonView,	boolean isChecked) {
    			if(isChecked) //isChecked 只有当CheckBox选中是才执行
    			{
    				CheckBox ck=(CheckBox)buttonView;
    				showToast(ck.getText().toString());
    			}
    		}
    	}
    	
    	public void showToast(String msg)
    	{
    		Toast.makeText(this, msg, 2000).show();
    	}
    	@Override
    	public boolean onCreateOptionsMenu(Menu menu) {
    		// Inflate the menu; this adds items to the action bar if it is present.
    		getMenuInflater().inflate(R.menu.main, menu);
    		return true;
    	}
    
    }
    

    运行结果如下:

    CheckBox是常见的控件也是常用的控件之一,掌握是有必要的。

    好了,今天就说到这里了。

    作者:zhoucj

    原创作品

  • 相关阅读:
    [LeetCode]24. Search Insert Position插入位置
    [LeetCode]23. Set Matrix Zeroes矩阵清零
    [LeetCode]22. 3Sum Closest最近三者之和
    [LeetCode]21. 3Sum三者之和
    [LeetCode]20. Unique Paths II唯一路径
    [LeetCode]19. Unique Paths唯一路径
    [LeetCode]18. Contains Duplicate II重复检测
    [LeetCode]17. Majority Element主元素
    第13章建造者模式
    第15章抽象工厂模式
  • 原文地址:https://www.cnblogs.com/zhoujian315/p/3131447.html
Copyright © 2011-2022 走看看