Здравствуйте, я пытаюсь выполнить некоторые действия, пока пользователь удерживает кнопку.Выполнение действия при длительном нажатии
Моя проблема в том, что мой Runnable
не будет работать.
Вот мой код:
@Override
public boolean onLongClick(View v) {
final Runnable r = new Runnable()
{
public void run()
{//do the forwarding logic here
int test = 0;
if(holdingDown)
test++;
else
return;
Log.i("test", test+"");
}
};
r.run();
}
return false;
}
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_UP:
{
holdingDown= false;
Log.i("holdingDown", "false");
break;
}
}
return false;
}
onTouch
для обнаружения, когда пользователь остановить нажатием кнопки. Когда я смотрю на свои журналы, я вижу, что Runnable
работает только один раз.
Мой журнал тест получить только значение 1.
Журнал вызовов для Log.i("holdingDown", "false")
становится Привели в нужное время, только тогда, когда я перестану касанием кнопки.
Почему мой Runnable
не запускается? Благодарю.
EDIT:
Я попробовал этот код:
@Override
public boolean onLongClick(View v) {
// TODO Auto-generated method stub
holdingDown = true;
new Thread(new Runnable() {
@Override
public void run() {
if(holdingDown)
{
int test = 0;
test++;
Log.i("test", test+"");
}
else
return;
}
}).start();
return false;
}
Его до не работает.
где вы изменяете значение true? Кроме того, это не способ запускать и запускать поток – gunar