導航:首頁 > 操作系統 > 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雙擊單擊相關的資料

熱點內容
國內好的雲伺服器購買費用 瀏覽:944
linux信號表 瀏覽:849
php原生mvc源碼 瀏覽:532
app強制停止運行怎麼恢復 瀏覽:675
伺服器打補丁如何使用方法 瀏覽:728
linux刪除換行符 瀏覽:540
電腦無法顯示app怎麼辦 瀏覽:989
程序員要任命 瀏覽:709
嫁給程序員的梗 瀏覽:887
我的世界斗羅大陸伺服器如何交易 瀏覽:963
程序員旅遊加班 瀏覽:678
程序員知識架構體系 瀏覽:369
程序員專屬設計 瀏覽:517
單片機與sd卡 瀏覽:173
回家姑姑請程序員女友吃飯 瀏覽:824
php獲取代理ip 瀏覽:962
愛加密加固脫殼 瀏覽:566
win7將文件夾設置在桌面側邊 瀏覽:692
加密資產市值是多少 瀏覽:777
phpgraph 瀏覽:717