私は次のことを行う簡単なアプリを持っています:
public void onClick(View v){
switch(v.getId()) {
case R.id.buttonup:
onButtonUp();
break;
case R.id.buttondown:
onButtonDown();
break;
}
}
public boolean dispatchKeyEvent(KeyEvent event){
int keyCode = event.getKeyCode();
switch (keyCode) {
case KeyEvent.KEYCODE_VOLUME_UP:
onButtonUp();
return true;
case KeyEvent.KEYCODE_VOLUME_DOWN:
onButtonDown();
return true;
default:
return super.dispatchKeyEvent(event);
}
}
void onButtonUp(){
increment_some_static_class_variable;
}
void onButtonUp(){
decrement_some_static_class_variable;
}
問題は、音量ボタンを押すたびに、onButtonUp および onButtondown 関数が 2 回呼び出されることです。これは、画面のボタン (onClick(View) で処理) を押しても発生しません。この問題を抱えている人を見つけられなかったので、ここにいる人たちに尋ねています。私は Android が初めてで、これが私の最初のアプリケーションです。ログを使用すると、onButtonUp と onButtonDown の両方の呼び出しが dispatchKeyEvent 関数から来ていることがわかりました。ここで何が問題なのですか?問題をうまく説明できれば幸いです。提案/解決策は大歓迎です。