JAVA自定义一个Button,重写了onTouchEvent 方法,出现的问题。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA自定义一个Button,重写了onTouchEvent 方法,出现的问题。相关的知识,希望对你有一定的参考价值。

onTouchEvent () 里面如下(其他代码我省略了):

switch (action)
case MotionEvent.ACTION_DOWN:

mDialogManager.showRecorderDialog(); //显示一个已经定义好的对话框

changeState(STATE_RECORDING); //此方法改变按钮的样式

break;

当我调用mDialogManager.showRecorderDialog(); 的时候, 如下代码会无效。

setOnLongClickListener(new OnLongClickListener()

@Override
public boolean onLongClick(View v)
isReady = true;
mAudioManager.prepareAudio();
return false;

);

求高手看一下问题出在哪里?

参考技术A 因为你重写了ontouchevent,而click或者longclick都是根据touch的motion来判断的
所以longclick不生效.
基本思路:
1,自行判断,例如action down开始计时,当action up到来时,如果持续超过一定时间(比如1秒),并且move的范围小于一定阈值,认定为一次long click
2,使用gesture detector类判断手势.追问

不对,如果mDialogManager.showRecorderDialog(); 注释掉的话,longClick又会触发,只要这个Dialog显示出来,longClick就会失效,不知道问题出在哪里。

自定义控件--双击

m开头是Android里面的属性命名规范,也可以采用Java的首字母小写

在控件里面通过重写某一个方法实现自己的逻辑从而实现自定义控件

继承于Button

第一步:选择需要继承的控制类

第二步:实现构造方法

技术图片

 

 技术图片

 

 技术图片

 

 

技术图片

 

 

 

以上是关于JAVA自定义一个Button,重写了onTouchEvent 方法,出现的问题。的主要内容,如果未能解决你的问题,请参考以下文章

flex 自定义组件

自定义控件--双击

自定义button的点击区域

android自定义控件,动态设置Button的样式

java开发----自定义对象,重写equals方法

JAVA——springSecurity——自定义配置的一些补充:Anonymous匿名用户重写loadUserByUsername()方法自定义WebSecurityConfig配置等