-1
我试图听一个android硬件按钮手动取消倒数计时器。从Android的内部类使用硬件按键侦听器
我环顾四周,解决方案似乎是重写按钮的“onKeyUp”或“onKeyDown”。 问题是我认为我只能为活动类或UI元素编写重写方法。但是,我不知道如何听Java类内部类的硬件关键事件。
在我目前的实施中,在重写方法是随机放在我的活动,我的定时器对象的取消被无限地执行...
请帮帮忙!
编辑: 我的建议如下:将听众转移到当前焦点。我从我的timer类的onTick方法中调用这个方法。但仍然没有运气。调试器显示重写方法永远不会被调用。在我的应用程序仍按钮点击结果音量上/下。
public void getVolBtnEvent(){
parent.setOnKeyListener(new View.OnKeyListener() {
@SuppressWarnings("unused")
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if (event.getKeyCode() == KeyEvent.KEYCODE_VOLUME_UP || event.getKeyCode()== KeyEvent.KEYCODE_VOLUME_UP)
volBtnClicked++;
if (volBtnClicked ==1){
if (currentV ==1 && MyConstants.RHYTHM_WITH_VOL_BTN)
processTouchEventR();}
else if (volBtnClicked ==2){
if (currentV ==1 && MyConstants.RHYTHM_WITH_VOL_BTN) {
stopTimerR();
parent.setEnabled(false);
writeToFile ("blah");
getConfirmation();
}
}
return true;
}// end of onkey
});
}//end of getVolbtn
您应该覆盖具有当前焦点的控件上的方法。你可以在背景布局视图AFAIK – 2014-09-12 13:49:52
得到它感谢!顺便问一下,你在什么基础上排名这个问题? – user3793196 2014-09-12 14:08:10
不知道。不要问我,因为它不是我:) – 2014-09-12 14:08:57