2014-06-17 52 views
2

我目前正在做我的小項目。我想簡單地在我的應用程序中設置4個按鈕,然後按下按鈕,我應該繼續做同樣的事情,直到我釋放按鈕。 (例如,我需要使用這4個按鈕來控制我的機器的方向。)設置按鈕按下並在Android中繼續執行相同的任務

我一直在嘗試幾種不同的方法,例如onTouch。但是,在這種方法中,我需要保持略微移動手指,這樣我才能繼續做同樣的事情。否則,它將停止。也適用於onlongClicklistener並且setpressed爲true。他們都沒有我想要的東西。

任何人都可以告訴我我可以調用什麼方法或執行此邏輯的邏輯?非常感謝! :)

+0

http://stackoverflow.com/問題/ 4284224/Android的保持按鈕來重複動作 –

回答

1

我認爲onTouchListerner最適合您的需求。使用線程來完成工作。在事件ACTION_DOWN中啓動線程,並在事件ACTION_UP上停止線程。

((按鈕)findViewById(R.id.leftBtn))setOnTouchListener。(新OnTouchListener(){

 @Override 
     public boolean onTouch(View arg0, MotionEvent event) { 
      if(event.getAction() == MotionEvent.ACTION_DOWN){ 
       // start the thread 
       return true; 
      } else if(event.getAction() == MotionEvent.ACTION_UP){ 
       // stop the thread 
       return true; 
      } 
      return false; 

     } 
    }); 

希望這將幫助你。

1

您可以設置正常的點擊監聽器和內部啓動線程,定時器,backgroundtask,或定期檢查您的按鈕是否被按下的其他東西。

例如,你可以做到這一點類似於此:

final Button yourButton = (Button) view.findViewById(R.id.your_button); 
long timerInterval = 1000; //one second 
yourButton.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     final Timer t = new Timer(); 
     t.scheduleAtFixedRate(new TimerTask() { 
      public void run() { 
       if (yourButton.isPressed()) { 
        // do something (executing your code on button being pressed) 
       } else { 
        t.cancel(); 
       } 
      } 
     }, 0, timerInterval); 
    } 
}); 

這將執行代碼每秒鐘被按下的按鈕。

相關問題