次のコードは、キーストロークをシミュレートする試みです。
button1.setPressed(true);
try {
Thread.sleep(500);
} catch(InterruptedException e) {
}
button1.setPressed(false);
上記はボタンには何もしませんが、
button1.setPressed(true);
それ自体でボタンを押された状態に設定します。
最初のスニペットがボタンに影響を与えないのはなぜですか?
返信が遅れますが、UIスレッドをブロックしているためだと思います。そのため、押された状態を再度無効にするまで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);
}
}
幸運を!