2012-09-18 43 views
1

我們可以設置長按鍵監聽程序的持續時間嗎?我想要的是,如果用戶持續觸摸屏幕3秒,那麼我的長按鍵聽衆應觸發並打開彈出式設置。設置長按鍵監聽程序的持續時間

在此先感謝。

+0

設置是你的應用程序設置或android設置選項卡? –

回答

0

裏面長按監聽ü可以設置一個處理程序有3秒限制,如果達到3秒的時間,然後ü可以在它運行的方法要麼做默認方法

1

覆蓋onTouch監聽器,然後把手壓,按下的按鈕(事件== 「按下」)

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; 
       } 
      }); 
+0

謝謝Yahor10你可以給我你的.. .. startTimer()和getTimer()如何實現或其完整代碼的實現在此先感謝 –

+0

看到此更新 – Yahor10

+0

感謝您的幫助,但它不履行我的問題,我想如果用戶持有觸摸N秒後,我的東西會去......就像用戶觸摸並保持觸摸3秒鐘,然後我的功能會調用....任何想法???(保持屏幕觸摸N秒) –

0

期間釋放事件,並設置計時器從Android 2.0的,活動包含方法

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); 

對於細節you can visit爲了更好的理解。

+0

需要一個解決方案如果長按等於3秒 –