長押しリスナーの継続時間を設定できますか? 私が欲しいのは、ユーザーが3秒間画面に触れ続けると、長押しのリスナーがトリガーされ、ポップアップを開いて設定する必要があるということです。
前もって感謝します。
長押しリスナーの継続時間を設定できますか? 私が欲しいのは、ユーザーが3秒間画面に触れ続けると、長押しのリスナーがトリガーされ、ポップアップを開いて設定する必要があるということです。
前もって感謝します。
onTouch Listener をオーバーライドし、押された、解放されたイベントを処理し、ボタンが押されている間にタイマーを設定します (イベント == "押された")
private Timer timer;
public LongClickTimer(int seconds) {
timer = new Timer();
timer.schedule(new LongClickTask(), seconds *1000);
}
class LongClickTask extends TimerTask {
public void run() {
// do what you want
timer.cancel();
}
}
button.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
Log.v(TAG, "EVENT" + event.toString());
if(event.getAction == 2) {// pressed
new LongClickTimer(5); // schedule for 5 seconds
}else{
timer.cancel();
}
return false;
}
});
長押しリスナー内で、3 秒の制限でハンドラーを設定できます。3 秒の時間に達した場合は、その中でメソッドを実行するか、デフォルトのメソッドを作成します。
Android 2.0 から、Activity にはメソッドが含まれます。
public boolean onKeyLongPress(int keyCode, KeyEvent event)
たとえば、戻るボタンを長押しすると、次のようになります。
@override
public boolean onKeyLongPress(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK)
{
// do your stuff here
return true;
}
return super.onKeyLongPress(keyCode, event);
}
設定タブを開くには、次のコードとアクティビティを実行できます...
Intent intent = new Intent(android.provider.Settings.ACTION_SETTINGS);
intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
activityContext.startActivity(intent);
詳細については、理解を深めるためにアクセスしてください。