Android:CheckBox控件

1)ChexkBox继承自CompoundButton组件;

2)isChecked()--确定是否选中;setChecked(bool checked)--设置选中或取消选中;

3)监听事件:CompoundButton.OnCheckedChangeListener

使用checkbox,并实现监听测试:

1)效果:

2)源代码:

res\layout\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/cbJava"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_marginLeft="27dp"
        android:text="Java Runtime 9.0" />

    <TextView
        android:id="@+id/tvCheckedValue"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/cbJava"
        android:layout_below="@+id/cbPython"
        android:layout_marginLeft="14dp"
        android:layout_marginTop="54dp"
        android:text="" />

    <CheckBox
        android:id="@+id/cbPython"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/cbJava"
        android:layout_below="@+id/cbJava"
        android:layout_marginTop="22dp"
        android:text="Python runtime2.7" />

</RelativeLayout>

MainActivity.java

  1 package com.example.helloword;
  2
  3 import java.text.BreakIterator;
  4
  5 import android.R.bool;
  6 import android.R.string;
  7 import android.app.Activity;
  8 import android.app.AlertDialog;
  9 import android.content.DialogInterface;
 10 import android.content.DialogInterface.OnClickListener;
 11 import android.os.Bundle;
 12 import android.renderscript.Script.KernelID;
 13 import android.test.IsolatedContext;
 14 import android.util.Log;
 15 import android.view.KeyEvent;
 16 import android.view.Menu;
 17 import android.view.View;
 18 import android.widget.Button;
 19 import android.widget.CheckBox;
 20 import android.widget.CompoundButton;
 21 import android.widget.EditText;
 22 import android.widget.ImageView;
 23 import android.widget.RadioButton;
 24 import android.widget.RadioGroup;
 25 import android.widget.TextView;
 26
 27 public class MainActivity extends Activity {
 28     private CheckBox cbJava, cbPython;
 29     private TextView tvCheckedValue;
 30
 31     @Override
 32     protected void onCreate(Bundle savedInstanceState) {
 33         super.onCreate(savedInstanceState);
 34         setContentView(R.layout.activity_main);
 35         this.cbJava = (CheckBox) this.findViewById(R.id.cbJava);
 36         this.cbPython = (CheckBox) this.findViewById(R.id.cbPython);
 37         this.tvCheckedValue = (TextView) this.findViewById(R.id.tvCheckedValue);
 38
 39         CheckBoxOnCheckedChangeListener listener = new CheckBoxOnCheckedChangeListener();
 40
 41         this.cbJava.setOnCheckedChangeListener(listener);
 42         this.cbPython.setOnCheckedChangeListener(listener);
 43
 44     }
 45
 46     private StringBuffer stringBuffer;
 47
 48     private class CheckBoxOnCheckedChangeListener implements
 49             CompoundButton.OnCheckedChangeListener {
 50         private String checkJava = cbJava.getText().toString() + " ";
 51         private String checkPython = cbPython.getText().toString() + " ";
 52         private StringBuffer stringBuffer = new StringBuffer();
 53
 54         @Override
 55         public void onCheckedChanged(CompoundButton compoundButton,
 56                 boolean ischecked) {
 57             switch (compoundButton.getId()) {
 58             case R.id.cbJava:
 59                 Log.i("info", "operator " + cbJava.getText());
 60                 break;
 61             case R.id.cbPython:
 62                 Log.i("info", "operator " + cbPython.getText());
 63                 break;
 64             default:
 65                 break;
 66             }
 67
 68             if (compoundButton == cbJava) {
 69                 changeValue(ischecked, checkJava);
 70             } else if (compoundButton == cbPython) {
 71                 changeValue(ischecked, checkPython);
 72             }
 73
 74             tvCheckedValue.setText(stringBuffer.toString());
 75         }
 76
 77         private void changeValue(boolean ischecked, String checkValue) {
 78             int start = stringBuffer.indexOf(checkValue);
 79             int end = start + checkValue.length();
 80             if (ischecked) {
 81                 if (start == -1) {
 82                     stringBuffer.append(checkValue);
 83                 }
 84             } else {
 85                 if (start != -1) {
 86                     stringBuffer.delete(start, end);
 87                 }
 88             }
 89         }
 90     }
 91
 92     @Override
 93     public boolean onCreateOptionsMenu(Menu menu) {
 94         // Inflate the menu; this adds items to the action bar if it is present.
 95         getMenuInflater().inflate(R.menu.main, menu);
 96         return true;
 97     }
 98
 99     @Override
100     public boolean onKeyUp(int keyCode, KeyEvent event) {
101         // 当点击回退时,弹出该窗口(也就相当于关闭操作)
102         if (keyCode == KeyEvent.KEYCODE_BACK) {
103             new AlertDialog.Builder(this).setTitle("是否退出?")
104                     .setPositiveButton("确定", new OnClickListener() {
105                         @Override
106                         public void onClick(DialogInterface arg0, int arg1) {
107                             finish();
108                         }
109                     }).setNegativeButton("取消", null).show();
110             return true;
111         }
112         return super.onKeyUp(keyCode, event);
113     }
114 }
时间: 2024-10-24 13:44:18

Android:CheckBox控件的相关文章

android CheckBox控件的定义及事件监听

http://www.beijibear.com/index.php?aid=336 android CheckBox控件的定义及事件监听,本例实现CheckBox控件的定义及点击事件的监听并显示结果,运行效果截图如下: CheckBox控件的定义,main.xml内容如下: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas

Android开发CheckBox控件,全选,反选,取消全选

在Android开发中我们经常会使用CheckBox控件,那么怎么实现CheckBox控件的全选,反选呢 首先布局我们的界面: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_paren

[Android]界面控件

1. 引用系统自带样式 字体大小 对于能够显示文字的控件(如TextView EditText RadioButton Button CheckBox Chronometer等等),你有时需要控制字体的大小.Android平台定义了三种字体大小. "?android:attr/textAppearanceLarge" "?android:attr/textAppearanceMedium" "?android:attr/textAppearanceSmal

CheckBox控件中background和button的区别

控件:CheckBox android:background="@drawable/me_setting_switch_selector" 这个表示替换默认控件的背景 android:button="@drawable/me_setting_switch_selector" 这个表示替换默认控件的图片 区别在于:background的替换会让控件大小根据图片大小的变动 button则只是改变图片,不会让图片大小超出控件默认的大小 CheckBox控件中backgro

Android界面编程——Android基本控件

 Android界面编程 Android应用开发的一项重要内容就是界面开发.对于用户来说,不管APP包含的逻辑多么复杂,功能多么强大,如果没有提供友好的图形交互界面,将很难吸引最终用户. 作为一个程序员如何才能开发出友好的图形界面呢.实际上Android提供了非常丰富UI(User Interface)控件,开发者只要掌握了这些控件的特性,按照一定的规律,就可以像堆积木一样开发出友好的图形界面. 本章内容将介绍常用控件的具体用法. 2.1  Android UI的基础知识 Android中所有的

Android常见控件初探

温故而知新.最近复习了一些android常用控件,接下来,根据android 官方API,总结一下它们的一些常见用法.(开发测试环境为Android4.4) 一.TextView 由官方的关系图可以看出,TextView继承View类,直接子类有Button,CheckedTextView等,间接子类有AutoCompleteTextView, CheckBox等. 下面列举一些TextView常见的xml属性: android:text TextView显示的文字 android:textCo

Android基础控件使用汇总

平时写代码总会遇到一些问题,准备写一个比较基础的控件使用汇总系列!本系列持续不定期更新,希望能够帮到需要的朋友!get! Android基础控件使用细节--TextView Android基础控件使用细节--Button Android基础控件使用细节--EditText Android基础控件使用细节--ImageView Android基础控件使用细节--WebView Android基础控件使用细节--ListView Android基础控件使用细节--Menu Android基础控件使用

Android必备:Android UI控件的了解与学习

看这里:Android必备:Android UI控件的了解与学习 由于工作需要,最近一段时间,需要进行Android App开发的学习,之前简单的进行过Android的了解,对于基本的Android环境的搭建等已经有过整理,一个Android App是由一个或多个Activity组成,每一个Activity都是一个UI容器,也就是一个屏幕界面,一个界面的组成则是由一组Android UI控件组成,本篇,我们就来简单的对Android UI控件进行初步的了解和学习. Android UI控件根据其

Android常用控件:进度条

各种进度条属于 ProgressBar的子类 Sytle: 水平风格:Horizontal小风格:Small大风格:Large反向风格:Inverse小反向风格:Small.Inverse大反向风格:Large.Inverse 设置style:   style="?android:attr/progressBarStyle..." 主要属性:最大值:max当前进度:progress次要进度值:SecondaryProgress --效果类似于看电影那些缓冲 判断进度条是转圈还是水平的方

ArcGIS for Android地图控件的5大常见操作

原文地址: ArcGIS for Android地图控件的5大常见操作 - ArcGIS_Mobile的专栏 - 博客频道 - CSDN.NET http://blog.csdn.net/arcgis_mobile/article/details/7801467   GIS的开发中,什么时候都少不了地图操作.ArcGIS for Android中,地图组件就是MapView,MapView是基于Android中ViewGroup的一个类(参考),也是ArcGIS Runtime SDK for