0

我想为要冻结的应用程序中的屏幕创建一个计时器。让我们说两秒钟。我不希望屏幕对屏幕上的任何按钮点击做出反应。这是“皱眉”吗?或者是否有另一种方法来解决这个问题。

我的应用程序:

在此处输入图像描述

用户点击:

在此处输入图像描述

然后我想将所有内容暂停两秒钟(这样我的其他按钮监听器不会关闭)然后我希望监听器返回,因为我会将按钮从绿色变为灰色。

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
    }
  }
}

创建此侦听器的一个实例并将其用于每个按钮。

于 2012-09-25T20:03:33.730 回答