猿问

android中使用按钮来更新UI

使用以下代码想实现:当点击一个按钮后要显示一个图像,两秒后这个图像又变得不可见。

button.setOnClickListener(new OnClickListener() {
   public void onClick(View v) {
      firstImage.setVisibility(ImageView.VISIBLE);
      // delay of some sort
      firstImage.setVisibility(ImageView.INVISIBLE);
   }
}

但是运行代码后,点击按钮,图像一直是不可见的。我是不是该用另一种方法来实现这个功能呢?使用handlers还是不对,还有什么方法呢?


holdtom
浏览 573回答 3
3回答

呼啦一阵风

恩,你可以使用Handler的postDelayed方法来实现,且这种做法是线程安全的。给你个例子:private final Handler mHandler = new Handler(); private final Runnable runnable = new Runnable() {     @Override     public void run()     {         firstImage.setVisibility(View.INVISIBLE);     } }; // displayTime就是你要设置控件显示的时间,单位为毫秒 public void showView(long displayTime) {     mHandler.removeCallbacks(runnable);     firstImage.setVisibility(View.VISIBLE);     mHandler.postDelayed(runnable, displayTime); }

炎炎设计

不要让你的UI线程休眠final Handler handler = new Handler(); button.setOnClickListener(new OnClickListener() {    public void onClick(View v) {       firstImage.setVisibility(ImageView.VISIBLE);       handler.postDelayed(new Runnable(){             public void run(){                  firstImage.setVisibility(ImageView.INVISIBLE);             }       }, DELAY);    } }这里你应该设置DELAY为 2000 (ms)。
随时随地看视频慕课网APP

相关分类

Java
我要回答