微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

了解与模型-视图-控制器概念有关的setOnClickListener,View.OnClickListener和onClickView v

如何解决了解与模型-视图-控制器概念有关的setOnClickListener,View.OnClickListener和onClickView v

| 我很清楚我的xml按钮的id如何被转换为Button并最终转换为sayIt字段,但是...
Button sayIt = (Button) findViewById(R.id.sayit);
...单击按钮时,setonClickListener是否向控制器“注册\”要通知?如果是这样,那么Controller首先告诉我的代码的是View.OnClickListener()及其onClick(View v)方法,嘿,我被点击了,这才是食物链上的罪魁祸首?
sayIt.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

    // Does something cool

}
});
    

解决方法

        是的,在大多数使用情况下,ѭ2是标准的“单击此内容时执行操作”惯用语。我要说的最多,因为实际的基础实现要比这复杂得多,并且触摸事件在被检测为“ click”事件并向后传播之前,有多种方式使触摸事件沿视图层次结构传播。层次结构作为单击事件-但除非您要实现自定义视图,并且需要进行基于触摸的自定义跟踪,否则通常无需担心这些事件。 例如,如果在视图上设置View.OnTouchListener,则将获得每个触摸事件(按下,移动,按下以及在受支持的设备中,甚至包括多个指针)。在onTouchEvent()处理函数中,如果您
return true
,它将告诉视图“我对这个运动事件感兴趣,并且我已经消耗了该事件;因此,假装该事件从未发生并停止传播/处理它”-这样做实际上会干扰标准的“ 4”点击事件检测。 但是在大多数情况下,如果您想通过单击Button来使某些事情发生(惊奇,令人惊讶:),则您想要的是
View.OnClickListener
View#setOnClickListener()
。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。