0

次のコードは、キーストロークをシミュレートする試みです。

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

上記はボタンには何もしませんが、

button1.setPressed(true);

それ自体でボタンを押された状態に設定します。
最初のスニペットがボタンに影響を与えないのはなぜですか?

4

1 に答える 1

0

返信が遅れますが、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);
  }
}

幸運を!

于 2012-03-20T09:30:08.540 に答える