SetOnClickListener是对点击事件的监听,而setOnCheckedChangeListener是对Button状态的监听,状态的变化不仅仅包含人为的点击,还有其他的改变方式,比如setCheck()。所以SetOnClickListener只能监听onClick事件,而setOnCheckedChangeListener可以监听通过所有方式去改变的Button状态。所以setOnCheckedChangeListener的应用会更加广泛一些。
还有要注意的是,oncheckchanged是check changed的情况下才有可能调用,当他本身为true的时候,你再次设置setCheck为true或点击它的话当然也不会回调oncheckchanged这个函数。