我是菜鸟,在android TV开发中遇到问题,记录下来,监听android 中的长按事件一般要执行 onKeyDown,onKeyLongPress,onKeyUp这三个方法。

  private static double DOUBLE_CLICK_TIME = 0L;

  private boolean isLongPressKey ;

  private boolean lockLongPressKey;//判断长按还是

  private boolean isDoublePressKey;//判断是否快速点击


@Override

public boolean onKeyDown(int keyCode, KeyEvent event) {

switch (keyCode){

case KeyEvent.KEYCODE_DPAD_DOWN:

if (event.getRepeatCount() == 0) {

event.startTracking();

isLongPressKey=false;

if((System.currentTimeMillis() - DOUBLE_CLICK_TIME)>600){

isDoublePressKey=false;

}else{

isDoublePressKey=true;

}

DOUBLE_CLICK_TIME = System.currentTimeMillis();

return true;

}else{

isLongPressKey=true;

return true;

}

}

return super.onKeyDown(keyCode, event);

}

@Override

public boolean onKeyLongPress(int keyCode, KeyEvent event) {

switch (keyCode){

case KeyEvent.KEYCODE_DPAD_DOWN:

lockLongPressKey = true;

return true;

}

return super.onKeyDown(keyCode, event);

}

int mKeyTimes=0;//用来按下的上下键长按执行的次数

int mKeyRunTimes=0;

@Override

public boolean onKeyUp(int keyCode, KeyEvent event) {

if(event.getAction()==KeyEvent.ACTION_UP && isDoublePressKey){

mKeyTimes++;

}

switch (keyCode){

case KeyEvent.KEYCODE_DPAD_DOWN:

if(lockLongPressKey){

Log.d("xiaowu","isLongPressKey,444 "+event.getRepeatCount()+ "=="+isLongPressKey);

// TODO: 2017/6/11 加载数据

isLongPressKey=false;

lockLongPressKey=false;

}else{

if(!isLongPressKey ){

if(isDoublePressKey){

//任务延时加载

}else{

// TODO: 2017/6/11 加载数据

}

}

Log.d("xiaowu","isLongPressKey,333 "+event.getRepeatCount()+ "=="+isLongPressKey);

}

return true;

}

return super.onKeyUp(keyCode, event);

}

更多相关文章

  1. android中图片加载到内存的实例代码
  2. SavedStateHandle的使用,临时保存数据
  3. 【转】 Android(安卓)Action大全
  4. ClassLoader(java 与 android 对比)
  5. Android心得8--Internet
  6. Android中 记住密码(SharedPreferences)
  7. android adapter的更新
  8. 拍照-----------android系统 至关重要的功能
  9. android 权限集合

随机推荐

  1. 10个android开源项目
  2. 【原创】Android锁定横竖屏、splash,全屏
  3. [笔记]2012年移动大趋势(上)
  4. Android(安卓)-- 图像处理(信息量超大)
  5. Android(安卓)Camera 使用小结
  6. 十大Android(安卓)IDE工具和应用
  7. AndroidManifest.xml之 element详解
  8. Android常用的基本控件
  9. Android(安卓)Studio Tips-倍数提高工作
  10. Android中Intent习惯用法