-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