熟悉AndroidAPI系列2——CheckBox和OnCheckedChangeListener

<LinearLayout 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"
    android:orientation="vertical" >

   <CheckBox
       android:id="@+id/eatId"
       android:layout_width = "wrap_content"
       android:layout_height = "wrap_content"
       android:text = "吃饭"/>

   <CheckBox
       android:id="@+id/sleepId"
       android:layout_width = "wrap_content"
       android:layout_height = "wrap_content"
       android:text = "睡觉"/>

   <CheckBox
       android:id = "@+id/dotaId"
       android:layout_width = "wrap_content"
       android:layout_height = "wrap_content"
       android:text = "dota"/>

    <CheckBox
       android:id = "@+id/allId"
       android:layout_width = "wrap_content"
       android:layout_height = "wrap_content"
       android:text = "全选"/>
</LinearLayout>
package com.njulya.checkbox;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;

public class MainActivity extends Activity {
    private CheckBox eatBox;
    private CheckBox sleepBox;
    private CheckBox dotaBox;
    private CheckBox allBox;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        eatBox = (CheckBox)findViewById(R.id.eatId);
        sleepBox = (CheckBox)findViewById(R.id.sleepId);
        dotaBox = (CheckBox)findViewById(R.id.dotaId);
        allBox = (CheckBox)findViewById(R.id.allId);

        AllBoxListener allListener = new AllBoxListener();
        CheckBoxListener boxListener = new CheckBoxListener();

        eatBox.setOnCheckedChangeListener(boxListener);
        sleepBox.setOnCheckedChangeListener(boxListener);
        dotaBox.setOnCheckedChangeListener(boxListener);
        allBox.setOnCheckedChangeListener(allListener);
    }

    private class AllBoxListener implements OnCheckedChangeListener{
        @Override
        public void onCheckedChanged(CompoundButton arg0, boolean isChecked) {
            if(isChecked){
                eatBox.setChecked(true);
                sleepBox.setChecked(true);
                dotaBox.setChecked(true);
            }else{
                eatBox.setChecked(false);
                sleepBox.setChecked(false);
                dotaBox.setChecked(false);
            }
        }

    }
    private class CheckBoxListener implements OnCheckedChangeListener{
        @Override
        public void onCheckedChanged(CompoundButton checkbox, boolean isChecked) {
            if(checkbox.getId() == R.id.eatId){
                System.out.println("eat");
            }
            else if(checkbox.getId() == R.id.sleepId){
                System.out.println("sleep");
            }
            else if(checkbox.getId() == R.id.dotaId){
                System.out.println("dota");
            }

            if(isChecked){
                System.out.println("Checked");
            }
            else{
                System.out.println("unChecked");
            }
        }

    }

    @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;
    }

}
时间: 2024-10-25 14:33:21

熟悉AndroidAPI系列2——CheckBox和OnCheckedChangeListener的相关文章

熟悉AndroidAPI系列3——RadioGroup and RaioButton

选择A,会同时选中A,C 选择B,会同时选中A,C <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="matc

熟悉AndroidAPI系列4——ImageView和scaleType属性

图像比ImageView的尺寸小,但不想改变图像大小优先考虑center选项系列 图像比ImageView的尺寸大,可以有多种选择,可特别考虑centerCrop选项 scaleType属性的center选项 scaleType属性的centerCrop选项 scaleType属性的centerInside选项 scaleType属性的fitCenter选项 scaleType属性的fitStart选项 scaleType属性的fitEnd选项

熟悉AndroidAPI系列14——SharedPreferences和保存用户设置

点击保存参数保存 重启应用,会显示上一次保存的数据 类似于工作用户登录界面 SharedPreferences类 如何创建这个类的实例 它和Context的练习 业务类的代码 1 public void save(String name, String age){ 2 SharedPreferences preference = mcontext.getSharedPreferences("app_preference", Context.MODE_PRIVATE); 3 Editor

熟悉AndroidAPI系列9——ProgressBar

熟悉AndroidAPI系列1——LinearLayout

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:ori

熟悉AndroidAPI系列16—-ProgressBar

设置风格style="?android:attr/progressBarStyleSmall" style="@android:style/Widget.ProgressBar.Horizontal" android中的进度条 各种进度条关系 上图圆圈为ProgressBar,风格为垂直 上图右上为水平风格的ProgressBar 上图坐下为SeekBar 上图星星为RatingBar 控制进度条 max属性: progress属性:当前进度 secondaryPr

熟悉AndroidAPI系列13——LayoutInflater

如何把一个xml文件渲染成一个View控件 1 //如何把一个xml文件渲染为一个View控件 2 //得到一个对这个Activity的渲染器inflater 3 LayoutInflater inflater = this.getLayoutInflater(); 4 //将image_switch.xml渲染成View控件 5 View view = inflater.inflate(R.layout.image_switch, null); 6 builder.setView(view);

熟悉AndroidAPI系列8——RelativeLayout综合练习

组件布局最好通过一个兄弟组件或者父组件确定其位置坐标. gravity属性,能容在组件内部的位置 EditText中的提示属性hint,以及如何设置密码的输入格式 1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width=&

熟悉AndroidAPI系列10——Intent

多个Activity之间传递数据 添加数据 获得数据