您的位置:首页 > 其它

键值判断单击双击和长按事件

2015-10-09 14:14 911 查看
键盘上按键,判断单击双击和长按事件

public class MainActivity extends ActionBarActivity {

private static boolean isWaitingDoubleClick = true;
private static boolean isKeyLongPress;
private static final int DOUBLE_CLICK = 350;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
super.onKeyDown(keyCode, event);
if (event.isLongPress() == true && keyCode == KeyEvent.KEYCODE_MENU) {

event.startTracking();
System.out.println("长按");
isKeyLongPress = true;
}
return super.onKeyDown(keyCode, event);
}

@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (isKeyLongPress == true) {
isKeyLongPress = false;
} else {
isKeyLongPress = false;
ClickOrDoubleClick(keyCode);
}
return super.onKeyUp(keyCode, event);
}

private void ClickOrDoubleClick(int keyCode) {
if (isWaitingDoubleClick == true && keyCode == KeyEvent.KEYCODE_MENU) {
isWaitingDoubleClick = false;
Thread thread = new Thread() {
@Override
public void run() {
try {
sleep(DOUBLE_CLICK);
if (isWaitingDoubleClick == false) {
isWaitingDoubleClick = true;
System.out.println("单击");
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
thread.start();
} else {
isWaitingDoubleClick = true;
System.out.println("双击");

}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  键值 单击 双击 长按