0
私は、ボリュームダウンボタンの押下とそのキーの長押しを検出する必要があるプロジェクトに取り組んでいます。私はonKeyDownとonKeyLongPressのメソッドを使ってみました。しかし、それは動作していません。どうすればこの問題を回避できますか?ハードウェアキーで長押し(ホールド)操作を検出する方法
私は、ボリュームダウンボタンの押下とそのキーの長押しを検出する必要があるプロジェクトに取り組んでいます。私はonKeyDownとonKeyLongPressのメソッドを使ってみました。しかし、それは動作していません。どうすればこの問題を回避できますか?ハードウェアキーで長押し(ホールド)操作を検出する方法
これはフラグを使用して行うことができます。ユーザーがボリュームダウンキーをどのように操作するかに応じて、2つのブール値フラグを設定できます。
PS - ボタンが持ち運ぶKeyEvent IDを配置するだけで、音量を上げるか、他のキーに変更することができます。ここで
コードがある -
import android.view.KeyEvent;
boolean shortPress = false;
boolean longPress = false;
@Override
public boolean onKeyLongPress(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN){
Toast.makeText(this, "Long Press", Toast.LENGTH_SHORT).show();
//Long Press code goes here
shortPress = false;
longPress = true;
return true;
}
return super.onKeyLongPress(keyCode, event);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
event.startTracking();
if (longPress == true) {
shortPress = false;
} else {
shortPress = true;
longPress = false;
}
return true;
}
return super.onKeyDown(keyCode, event);
}
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
event.startTracking();
if (shortPress) {
Toast.makeText(this, "Short Press", Toast.LENGTH_SHORT).show();
//Short Press code goes here
}
shortPress = true;
longPress = false;
return true;
}
return super.onKeyUp(keyCode, event);
}
おかげで、私はこれを試してみましょう。 –
それはうまく動作します。ありがとう。 –