我想在android上實現按鈕。該按鈕有兩個功能,單按即可發送信息,如果用戶在毫秒內立即按下按鈕兩次,則會顯示警報對話框,如果延遲按下,則顯示敬酒信息。 請給我一些想法如何執行這些功能的android按鈕。兩次在android上按下按鈕功能
0
A
回答
4
在之前的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
}
}
0
試試這個,
的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);
}
});
0
可以使用的CustomButton和實現GestureDetector,然後你就可以覆蓋onSingleTapConfirmed和onDoubleTap功能可按
0
上面提出的解決方案,另一種方法是使用Android - 提供GestureDetector
,它允許您檢測其他手勢中的雙擊。
首先你需要一個簡單的嵌套類來處理您雙擊:
private class DoubleTapListener extends GestureDetector.SimpleOnGestureListener {
@Override
public boolean onDoubleTap(MotionEvent e) {
// Handle your double tap here.
return true;
}
}
GestureDetector
的默認監聽器接口,您可以欣賞很多不同的觸摸事件。 SimpleOnGestureListener
提供了每種方法的空白實現,因此您只能實現您感興趣的方法。
接下來,您需要創建您的GestureDetector
。您可以在Activity
的onCreate
中執行此操作。
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按鈕
- 2. Android上下文按鈕阻止後退按鈕功能
- 3. 按鈕處理兩次(按上升/下降沿)按鈕中斷
- 4. 具有兩個功能的Android按鈕
- 5. 繼續按下按鈕兩次
- 6. android中的下一個按鈕功能
- 7. 在Qt中使用QTimer在按鈕上暫停功能按下
- 8. jQuery - 必須按兩次或多次按鈕才能製作功能棒
- 9. 按下單選按鈕兩次,計算兩次
- 10. JavaScript - 計算一個按鈕被按下的次數(功能)
- 11. 只有按下按鈕運行功能
- 12. 按下按鈕時的運行功能
- 13. 按下按鈕暫停運行功能
- 14. 第二個功能按下按鈕
- 15. 按下按鈕JS疊加功能
- 16. android後退按鈕功能
- 17. 當按鈕按下兩次時,應用程序停止android
- 18. 兩次按下後顯示按下按鈕的結果
- 19. 按鈕無法按兩次
- 20. 按鈕功能只能工作一次
- 21. 在softKey「HOME」按鈕上停止Android輔助功能UI組件按下
- 22. iPhone在按鈕上按下按鈕
- 23. 更改按鈕上的UITableView功能按
- 24. 按鈕功能
- 25. 需要在按鈕上點擊兩次
- 26. 按鈕onClick在Mozilla上執行兩次
- 27. 按鈕按下功能將不起作用/按鈕不會按下目標C
- 28. 在android中的後退按鈕功能
- 29. 每按一次按鈕,我想在兩個功能之間切換
- 30. Android:按下鍵盤上的Done按鈕
爲什麼你不能實現點擊和長按鈕列表按鈕...? –