導航:首頁 > 操作系統 > android雙擊單擊

android雙擊單擊

發布時間:2023-09-17 17:34:36

1. android的ontouch方法如何判斷單擊還是雙擊

android 上沒有雙擊事件 也沒有那個概念 ,雙擊 就是兩次單擊。當點擊事件 出發是 按下的時候出發一次onTouch 事件 抬起的時候 也觸發一個onTouch 事件,如果你想做雙擊的話 只能自己進行判斷了 用兩次onTouch 抬起時的時間間隔 來 定位他是否是雙擊。

2. android textview或者LinearLayout的雙擊事件怎麼做

這個我實現了,但是也是用記錄上次點擊時間的方法,代碼給你看下。

java">importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.util.Log;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.widget.TextView;

importcom.sinovoice.test.R;

{
privatestaticfinalStringTAG="DoubleClickActivity";

privateintclickCount;
privatelongpreClickTime;
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

TextViewtv=(TextView)findViewById(R.id.tv_main);
clickCount=0;
tv.setOnClickListener(newOnClickListener(){
@Override
publicvoidonClick(Viewv){
if(clickCount==0){
好此preClickTime=System.currentTimeMillis();
clickCount++;
}elseif(clickCount==1){
longcurTime=System.currentTimeMillis();
if((curTime-preClickTime)<500){
輪襪慧doubleClick();
}
clickCount=0;
preClickTime=0;
}else{
臘答Log.e(TAG,"clickCount="+clickCount);
clickCount=0;
preClickTime=0;
}
}
});
}

privatevoiddoubleClick(){
Log.i(TAG,"doubleclick");
}
}

3. android button 雙擊操作如何監聽

android裡面沒有監聽雙擊事件的操作,如果想實現的話我的建議是在
private int count = 0;
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
count++;
if(cout == 2){
.監聽處理.
count = 0;
}
}
}) ;
這樣做的話會導致一個問題,那就是用戶在單擊一下是沒什麼操作 當用戶很長時間沒單擊之後再單擊一次仍然會執行相關操作,這樣給用戶的體驗很不好,如想改善最好是通過一個線程來監控count讓count在一定時間內刷新為0如下
private int count = 0;
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
count++;
if(cout == 2){
.監聽處理.
count = 0;
}
}
}) ;

new Thread(new Runnable(){
public void run() {
try {
Thread.sleep(500);
count = 0;
} catch (InterruptedException e) {
e.printStackTrace();
}
}}).start();

這樣做的話有可能的情況是當用戶在500ms末單擊一下在另外一個500ms初單擊一下這樣是不會觸發相應的事件的,這是這個程序的本身最大的缺陷

4. Android手勢---GestureDetector

GestureDetector 可以使用 MotionEvents 檢測各種手勢和事件。

這個類只能用於檢測觸摸事件的 MotionEvent

GestureDetector有三個內部介面,兩個內部類

他們都是起到監聽器的作用

注意:SimpleOnGestureListener繼承了GestureDetector的三個內部介面

GestureDetector自帶了五個構造方法,但是有兩個被廢棄了

因為第三個調用第二個,所以只要關注前面兩個就行了

我們發現第二個構造方法中多了一個Handler變數
一般來說,不會使用這個構造方法

但是因為GestureDetector中的數據是給GestureHandler內部類進行處理,這個類會使用Handle,由穗穗Handler的知識知道,創建Handler必須有Looper,但是在一些新開的線程中沒有創建Looper,所以我們需要傳入一個帶了Looper的Handler變數,否則,GestureDetector對象會創建失敗

按下是所以手勢必定有的動作
所以無論什麼手勢,第一個調用的方法就是onDown

注意:
GestureDetector的點擊對圖片,按鈕等無用

為了解決這個問題,我們可以

這兩個方法都可以響應到單擊事件,但是他們之間還是有區別的

當我們同時在監聽器中覆寫這兩個方法,並且進行單擊事件
我們會發現當進行單擊事件的時候,這幾個方法響應的順序是這樣的

首先onDown()必定是第一個執行的,但是會發現onSingleTapUp在onSingleComfirmed之前執行
我查閱了相關文檔,發現他們雖然同樣響應的是當手指離開屏幕的活動,但是 onSingleTapUp是立即執行 ,而 onSingleComfirmed卻要在離開後300ms後才執行 ,這樣悉世的目的是確認我們進行的是單擊事件(為了防止我們在300ms內再次進行單擊事件),所以他們的名字分別是Up和Comfirmed

所以,在 設置雙擊事件時,最好使用onSingleComfirmed(),進行雙擊時不會回調單擊方法

這兩個方法都可以響應雙擊事件,為了驗證他們的區別,我們同樣在一個響應器中覆寫這兩個方法,並且進行雙擊事件(我們這里單擊事件使用onSingleComfirmed)

我們使用Log.e()把方法響應的順序弄出來,發現他們規律很神奇

然後我在onDoubleTapEvent()中吧MotionEvent e 輸出,
然後方法響應的順序變成:

我們對以上信息進行分析:
DoubleTap在DoubleTapEvent前面執行,但是根據DoubleTapEvent的第一個MotionEvent是Down,所以判斷 雙擊的響應條件是在第一次單擊後的300ms內按下手指

我們又嘗試在雙擊後手指不離開屏幕,可見隨時間的延長,Move也變得更多,
由此判斷, onDoubleTapEvent是實時回調的,並且是用來檢測MotionEvent

這次我們在響應器中覆寫所有方法,進行長按操作
發現方法響應的順序為:

也就是說,在長按睜族肢時,onShowPress在onLongPress前面執行

同樣,我們覆寫所有方法,進行滑動操作,
發現方法的響應順序為

由此可見,在滑動/拖動過程中,不斷調用onScroll,最後調用onFiling

當然,Android自帶的手勢不能完全滿足我們的需求,於是Android提供了自建手勢的方法,這些內容將在下一篇博客中陳述

5. 安卓 如何區別單擊和雙擊分別執行

你可以用onTouchEvent方法的按下事件,判咐帆斷2次間隔時間,每次點擊記一下時間,如果第二次明叢點擊時間和第一次的時間特別短的話就是雙擊,就做雙擊的事,如果時間長的話就做單衡槐雹擊

6. android平板電腦中怎麼樣判斷是單擊還是雙擊

android平板電腦中是沒有雙擊選項的,原因如下:

  1. android平板電腦和電腦系統不同而且操作也是不同的,電腦打開軟體是需要雙擊軟體或者右鍵後單擊選擇穗轎打開。

  2. android平板電腦打開軟體只需要點擊一下就可以打開了,點擊軟體2次和點擊1次效果是一敗悶樣的,都是會察族彎打開軟體的。

閱讀全文

與android雙擊單擊相關的資料

熱點內容
編程語言怎麼做出來的 瀏覽:613
文件夾英文名排序 瀏覽:50
西二旗最高程序員 瀏覽:99
台灣寫真內部加密無刪減視頻 瀏覽:830
在線照片壓縮變小 瀏覽:654
隱藏配置文件夾 瀏覽:186
php分布式模塊化開發 瀏覽:389
wula是什麼app 瀏覽:832
豌豆莢里怎麼降低安卓手機版本 瀏覽:371
桌面的文件夾怎樣解散 瀏覽:796
貴州貴陽山洞伺服器雲空間 瀏覽:221
年薪48萬程序員老公 瀏覽:917
使用預構建的python 瀏覽:532
加密對沖基金交易有限公司 瀏覽:357
煙台製冷壓縮機價格 瀏覽:249
平板能用騰訊雲伺服器嗎 瀏覽:867
有js基礎學python 瀏覽:599
程序員可以回老家蓋房子嗎 瀏覽:555
pythonserial波特率 瀏覽:578
pc我的世界國際服怎麼下伺服器 瀏覽:144