关于Checbox的OnCheckedChangeListener为什么我写个外部内传控件过来一直空指针,写内部内没问题?

问题描述

关于Checbox的OnCheckedChangeListener为什么我写个外部内传控件过来一直空指针,写内部内没问题?
 import java.util.List;
 import android.util.Log;
 import android.widget.CheckBox;
 import android.widget.CompoundButton;
 import android.widget.CompoundButton.OnCheckedChangeListener;

public class Boxlistener  implements OnCheckedChangeListener{
private int type;
private CheckBox cball;
private List<CheckBox> boxs ;
private boolean bool;
public static final int PARENT_BOX=0;
public static final int CHILD_BOX=1;

public Boxlistener(int type) {
    this.type = type;
}

public Boxlistener(int type, CheckBox cball, List<CheckBox> boxs) {
    this.type = type;
    this.cball = cball;
    this.boxs = boxs;
}

@Override
public void onCheckedChanged(CompoundButton buttonView,
        boolean isChecked) {
    switch (type) {
    case PARENT_BOX:
        Log.i("delong","此时父类状态为:"+cball.isChecked());
        cball.setChecked(true);
        if (cball.isChecked()) {
            for (CheckBox box : boxs) {
                box.setChecked(true);
            }
        }else{
            if (!bool) {
                for (CheckBox box : boxs) {
                    box.setChecked(false);
                }
            }else{
                bool=false;
            }
        }
        break;
    case CHILD_BOX:
        Log.i("delong", "当前box状态为:"+cball.isChecked());
        if (cball.isChecked()) {
            Log.e("delong", "当前box状态为:"+isChecked);
            if (isChecked) {

            }else{
                bool = true;
                cball.setChecked(false);
            }
        }else{
            if (isChecked) {
                for (int i=0 ; i<boxs.size();i++) {
                    for(int j= i+1;j<boxs.size();j++){
                        if ((""+boxs.get(j).isChecked()).equals(""+boxs.get(j-1).isChecked())) {
                            if (j==boxs.size()-1) {
                                cball.setChecked(true);
                            }
                        }else{
                            return;
                        }
                    }
                }
            }
        }
        break;
    }
}
}

解决方案

调试下,看下具体哪个变量是null的。

解决方案二:

大概知道是什么原因了,重写的类不会被系统框架回调 不知道怎么解决

时间: 2024-09-21 18:21:31

关于Checbox的OnCheckedChangeListener为什么我写个外部内传控件过来一直空指针,写内部内没问题?的相关文章

arcgis for android mapview控件 三星平板手写笔点击屏幕

问题描述 arcgis for android mapview控件 三星平板手写笔点击屏幕 arcgis for android mapview控件 三星平板手写笔点击屏幕 地图会抖动,手触不会抖动,谁知道怎么样把抖动处理掉,谢了?

c c++ active-在写一个指纹仪ActiveX控件驱动的时候

问题描述 在写一个指纹仪ActiveX控件驱动的时候 调用厂家的动态库中的函数typedef int (WINAPI* ptr_TcGetDeviceInfo)(int iFlag char *psFactory char *psFirmVersion);这是动态库中的函数,我这样调用char psFactory[2048]={0}; char psFirmVersion[2048]={0}; int nRet = FPIDevInfo(0psFactorypsFirmVersion);但是调F

c# 控件 自定义控件-大家帮忙看一下这是什么控件,是c#写的吗

问题描述 大家帮忙看一下这是什么控件,是c#写的吗 ![CSDN移动问答][1] 帮忙看一下这是什么控件 就是鼠标点击上边的按钮,下面会跟出来一列子按钮 我不知道怎么发图..

写一个简单的登陆控件

控件 login.ascx 由于在页面上很频繁使用登陆,把它做成一个控件是很有必要的,下面就是我写的一个简单的登陆控件,大家可以根据的需要完善一下. <%@ Import Namespace="System.Data" %><%@ Import Namespace="System.Data.Oledb" %><script language="VB" runat="server">Sub P

自己动手写的javascript前端等待控件_javascript技巧

等待控件在网上搜有好多种,但是都很复杂,不一定用的顺手,再说我的项目是bootstrap的原因,又不敢轻易使用第三方控件,怕不兼容,于是自己动手写了个等待控件,其技术点包括动态加载CSS,javascript的命名空间,所以记录一下. 这个等待控件主要是:进行某个操作前,显示一个信息提示:"数据加载中,请稍候...",操作成功后,在回调函数中将提示消失,原理是这个等待控件完全由JS动态加进去,包括CSS,页面中并无预先设定. 那么这个CSS怎么动态加载呢?等待控件中,样式使用了clas

用代码编了一个控件,如何再写这个控件的事件

问题描述 想实现的功能是这样的:显示在数据库中所有的学生照片,并单击某个学生照片显示其基本信息.目前我写的已经可以显示所有的学生照片了,但单击照片显示信息实在是不知道怎么写.本人学生,忘各位大神指点一二,谢谢.stringstrConnect="datasource=.;initialcatalog=test;integratedsecurity=true";SqlConnectionconConnection=newSqlConnection(strConnect);conConne

我自己写的自定义Web的上传控件

web|控件|上传|上传控件 using System;using System.Web.UI;using System.Web.UI.WebControls;using System.ComponentModel;using System.Web.UI.HtmlControls;using System.IO;using System.Drawing;using System.Drawing.Design; namespace Yingnet.Common{ /// <summary> //

自己使用js/jquery写的一个定制对话框控件_javascript技巧

最近在做一个游戏项目,项目里面很多需要用到对话框,而且得用上美工做的图片,这样的话好像就不好去找一些现成的对话框控件了,于是便琢磨着自己做一个通用的控件,虽然不是绝对通用啦,但在我这个项目里还是可以随意调用的,思想的话也可以借鉴到别的项目中. 先贴出主要代码: 复制代码 代码如下: //对话框的基本html内容,绝对定位,高宽设置,背景图片,标题,两个按钮图 var tdlz_dialog_content = "<div id='tdlz_dialog" + "' st

Javascript jquery css 写的简单进度条控件_jquery

Javascript 进度条 Demo 原理就是使用 Javascript 控制 SPAN CSS 的宽度(以及其他的样式),详细信息可以参见链接:http://www.jb51.net/article/13993.htm