2012-01-06 3 views
0

Следующий код представляет собой попытку имитировать нажатие клавиши:Android setPressed поведение

button1.setPressed(true); 
try { 
Thread.sleep(500); 
} catch(InterruptedException e) { 
} 
button1.setPressed(false); 

выше ничего не делает вообще к кнопке, но

button1.setPressed(true); 

сам по себе устанавливает кнопку это нажатие.
Почему первый фрагмент не влияет на кнопку?

+0

Если вы также пытаетесь выполнить OnClickListener кнопки, тогда не забудьте вызвать button1.performClick(). (но, возможно, вы просто удалили эту часть здесь, чтобы сделать код более чистым/понятным) :) – YuviDroid

ответ

0

Поздний ответ, но я предполагаю, что вы блокируете UI-поток, поэтому он не будет обновлять пользовательский интерфейс, пока вы еще не отключили нажатое состояние еще раз.

Вместо этого вы можете попробовать что-то вроде:

class MyClass extends Activity ... { 
    private final Handler _handler = new Handler(); 
    ... 
    void somefunc() { 
    button1.setPressed(true); 
    _handler.postDelayed(new Runnable() { 
     @Override 
     public void run() { 
     button1.setPressed(false); 
     } 
    }, 500); 
    } 
} 

Удачи вам!

 Смежные вопросы

  • Нет связанных вопросов^_^