如何区分处理onkeydown和长按事件

 我来答
芊云说电影
高粉答主

2015-01-21 · 每个回答都超有意思的
知道大有可为答主
回答量:3万
采纳率:89%
帮助的人:1亿
展开全部
如果要执行长按事件的话,必须先执行event.startTracking(); 然后onKeyLongPress(int, KeyEvent)才能被调到。
是说在dispatchkeyevent里先执行event.startTracking(); 然后才super.dispatchKeyE……

假定你要执行长按enter键的事件, 你可以这样子做:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
super.onKeyDown(keyCode, event);
if(keyCode == KeyEvent.KEYCODE_ENTER){
event.startTracking();
}
}

@Override
public boolean onKeyLongPress(int keyCode, KeyEvent event) {
return super.onKeyLongPress(keyCode, event);
}

这样子你的onKeyLongPress方法就会被执行到了。

希望能对你有用!
微测检测5.10
2023-05-10 广告
您好!建议咨 深圳市微测检测有限公司,已建立起十余个专业实验室,企业通过微测检测就可以获得一站式的测试与认 证解决方案;(EMC、RF、MFi、BQB、QI、USB、安全、锂电池、快充、汽车电子EMC、汽车手机互 联、语音通话质量),认证遇... 点击进入详情页
本回答由微测检测5.10提供
4039hz
推荐于2016-09-16 · TA获得超过1.2万个赞
知道小有建树答主
回答量:5057
采纳率:67%
帮助的人:343万
展开全部
  
如果要执行长按事件的话,必须先执行event.startTracking(); 然后onKeyLongPress(int, KeyEvent)才能被调到。
是说在dispatchkeyevent里先执行event.startTracking(); 然后才super.dispatchKeyE……
  假定要执行长按enter键的事件, 可以这样做:
@Override
public boolean onKeyDown
  (int keyCode, KeyEvent event) {super.onKeyDown(keyCode, event); if(keyCode == KeyEvent.KEYCODE_ENTER){event.startTracking(); }}
@Override
  public boolean onKeyLongPress(int keyCode, KeyEvent event) {return super.onKeyLongPress(keyCode, event);}
这样子onKeyLongPress方法就会被执行到了。

  onkeydown 事件会在用户按下一个键盘按键时发生。  支持该事件的 HTML 标签:<a>, <acronym>, <address>, <area>, <b>, <bdo>, <big>, <blockquote>, <body>,
<button>, <caption>, <cite>, <code>, <dd>, <del>, <dfn>, <div>, <dt>, <em>,
<fieldset>, <form>, <h1> to <h6>, <hr>, <i>, <input>, <kbd>, <label>, <legend>,
<li>, <map>, <object>, <ol>, <p>, <pre>, <q>, <samp>, <select>, <small>,
<span>, <strong>, <sub>, <sup>, <table>, <tbody>, <td>, <textarea>, <tfoot>,
<th>, <thead>, <tr>, <tt>, <ul>, <var>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式