#android #android-event
#Android #android-событие
Вопрос:
У меня есть изображение для добавления 1 к некоторому edittext, и я написал код для обработки события onclick этого изображения, и оно работает нормально. Но я должен реализовать, что если пользователь нажимает на изображение, он должен увеличивать edittext, и если он сохраняет изображение в нажатом состоянии, он должен увеличивать edittext для большего количества значений, что зависит от того, как долго он удерживал изображение нажатым.
Ответ №1:
Что вы могли бы сделать, так это использовать обработчик, который выполняет 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 */
}