Я хочу реализовать кнопку на Android. Эта кнопка имеет две функции, одно нажатие на тост-сообщение, если пользователь мгновенно дважды нажимает кнопку в течение миллисекунды, тогда будет отображаться диалоговое окно предупреждения, если отсрочка будет нажата, чем будет отображаться сообщение тоста. Пожалуйста, дайте мне некоторое представление о том, как выполнять эти функции android Button.Дважды нажмите кнопку для функциональности на android
ответ
В вашей деятельности до OnCreate объявить
private long lastclicked = 0;
затем setOnClickListener
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//1000 replace your time in ms
if (SystemClock.elapsedRealtime() - lastclicked < 1000){
return;
}
lastclicked = SystemClock.elapsedRealtime();
//perform here your task
}
}
Попробуйте это
Создать логическое перед тем OnCreate
private boolean pressedOnce = false;
В onClickListener использовать обработчик для второго
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (pressedOnce) {
// show the alert dialog
}
pressedOnce = true;
Toast.makeText(MainActivity.this, "Clicked once!", Toast.LENGTH_SHORT).show();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
pressedOnce=false;
}
}, 1000);
}
});
Вы можете использовать CustomButton и реализует GestureDetector, тогда вы можете переопределить onSingleTapConfirmed и onDoubleTap Funciton
Альтернативой решений, представленных выше, является использование Android- предоставлено GestureDetector
, что позволяет обнаруживать, среди прочих жестов, двойной кран.
Сначала вам нужен простой вложенный класс для обработки вашего двойного нажатия:
private class DoubleTapListener extends GestureDetector.SimpleOnGestureListener {
@Override
public boolean onDoubleTap(MotionEvent e) {
// Handle your double tap here.
return true;
}
}
GestureDetector
«s интерфейсы слушателя по умолчанию позволяют слушать на многих различных сенсорных событиях. SimpleOnGestureListener
обеспечивает пустую реализацию каждого из их методов, поэтому вы можете реализовать только те, которые вас интересуют.
Затем вам нужно создать свой GestureDetector
. Вы можете сделать это в onCreate
вашего Activity
.
DoubleTapListener doubleTapListener = new DoubleTapListener();
GestureDetector gestureDetector = new GestureDetector(this, doubleTapListener);
gestureDetector.setOnDoubleTapListener(doubleTapListener);
К сожалению, вам нужно передать ваш doubleTapListener
дважды - первый раз, когда он передается как OnGestureListener
обеспечить все пустые реализации для методов, которые нас не интересуют. this
представляет Context
.
Последняя часть предназначена для маршрутизации вашего onTouchEvent на наш GestureDetector
.
button.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
return gestureDetector.onTouchEvent(motionEvent);
}
});
Это решение требует немного больше кода, но с другой стороны, вы полагаетесь на пути стандартного Android, чтобы обнаружить двойные отводы вместо того, чтобы создавать свои собственные.
- 1. Дважды нажмите кнопку для Android в Android
- 2. Дважды нажмите на кнопку
- 3. Android: дважды нажмите кнопку «Назад»?
- 4. нажмите дважды на кнопку, она исчезнет в игре для Android
- 5. Дважды нажмите кнопку прослушивателя
- 6. Нажмите кнопку дважды, чтобы POST
- 7. Дважды нажмите кнопку Push Notification?
- 8. Нажмите кнопку фрагмента и нажмите кнопку дважды, чтобы закрыть приложение.
- 9. AngularJs нг нажмите пожары дважды на кнопку ввода нажмите
- 10. HTML дважды нажмите кнопку мыши на одну кнопку
- 11. Сбой Android WebView на Назад нажмите дважды
- 12. Нажмите дважды, чтобы проверить радио кнопку?
- 13. Дважды нажмите кнопку возврата, чтобы выйти из приложения AIR android
- 14. VB - Нажмите ту же кнопку Дважды
- 15. Дважды нажмите кнопку «Отправить форму» или «Отправить дважды»
- 16. jQuery: запретить добавление (дважды нажмите кнопку)
- 17. Android AlertDialog нажмите кнопку
- 18. Нажмите кнопку отправки дважды для формы для отправки
- 19. при добавлении дважды нажмите кнопку ввода данных
- 20. На Android, нажмите, чтобы развернуть список -and- нажмите на кнопку?
- 21. Facebook логин: iOS/Swift - дважды нажмите кнопку
- 22. Как избежать, Ajax кнопку нажмите дважды
- 23. Нажмите кнопку дважды, чтобы подтвердить действие.
- 24. Дважды нажмите на пояснительном
- 25. Нажмите на кнопку на jQuery
- 26. Android: нажмите кнопку «Готово» на клавиатуре
- 27. Как скрыть кнопку на editText нажмите на Android?
- 28. Нажмите на кнопку в Android WebView программным
- 29. Как отключить кнопку HOME, нажмите на android
- 30. Android нажмите кнопку по желанию
Почему вы не можете использовать клик и длинный клик для этой кнопки ...? –