2014-06-14 136 views
1

我有一个图像用于向某些edittext添加1,并且我已经编写了代码来处理该图像的onclick事件并且其运行正常。但我必须实现,如果用户按下图像,它应该增加edittext,如果他保持图像处于按下状态,它应该增加edittext的更多值,这取决于他保持图像按下的时间。Android事件处理

回答

0

你可以做的是使用一个处理程序,在图像被按下的同时执行连续循环中的runnable。可运行程序将包含增量代码:

private int _startIncrementRate = 750; 
private int _incrementRate = 50; 
private Handler _handler; 
protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    _handler = new Handler(); 
    _img.setOnTouchListener(new View.OnTouchListener() 
    { 
     public boolean onTouch(View view, MotionEvent motionEvent) 
     { 
      switch (motionEvent.getAction()) 
      { 
       case MotionEvent.ACTION_DOWN: 
        IncrementEditText(); 
        _handler.postDelayed(handler_run, _startIncrementRate); 
        break; 
       case MotionEvent.ACTION_UP: 
        _handler.removeCallbacks(handler_run); // stop runnable from executing 
        break; 
      } 
      return false; 
     } 
    }); 
} 
private Runnable handler_run = new Runnable() 
{ 
    public void run() 
    { 
     IncrementEditText(); 
     _handler.postDelayed(this, _incrementRate); 
    } 
}; 
private void IncrementEditText() 
{ 
    /* increment editText code here */ 
}