0

アプリケーションの画面をフリーズさせるタイマーを作りたいです。2秒くらいとしましょう。画面上のボタンのクリックに画面が反応しないようにします。これは「眉をひそめる」ことですか?または、これについて別の方法があります。

私のアプリケーション:

ここに画像の説明を入力

ユーザーのクリック:

ここに画像の説明を入力

次に、すべてを 2 秒間一時停止し (他のボタン リスナーがオフにならないように)、ボタンを緑から灰色に戻すため、リスナーを元に戻したいと考えています。

4

1 に答える 1

0

クリック ハンドラーでは、色を変更し、すべてのボタンの onclick リスナーを削除して、タイミングを実行するバックグラウンド スレッドを開始できます。バックグラウンド スレッドが 2 分間スリープ状態になったら、すべてのボタンに onclick リスナーを再度追加できます。そうすれば、完全に応答しない UI を作成することはありませんが、ボタンを無効にする効果が得られます。

public class myListener implements OnClickListener() {
  private boolean ignoreClicks = false;

  public void setIgnoreClicks( boolean b ) { 
    this.ignoreClicks = b;
  }

  @Override
  public void onClick( View v ) {
    if ( !ignoreClicks ) {
      // use v to get the button, then change the color
      ignoreClicks = true;
      // start a new AsyncTask and give it the listener and the view
      // in doInBackground sleep for 2 seconds
      // in onPostExecute change the color of the button back to normal
      //     (you have a reference to the button because you gave the view to the AsyncTask)
      //   and set ignoreClicks to false in the listener
    }
  }
}

このリスナーのインスタンスを 1 つ作成し、それをすべてのボタンに使用します。

于 2012-09-25T20:03:33.730 に答える