为了账号安全,请及时绑定邮箱和手机立即绑定

android中使用按钮来更新UI

android中使用按钮来更新UI

holdtom 2019-03-13 19:15:37
使用以下代码想实现:当点击一个按钮后要显示一个图像,两秒后这个图像又变得不可见。button.setOnClickListener(new OnClickListener() {    public void onClick(View v) {       firstImage.setVisibility(ImageView.VISIBLE);       // delay of some sort       firstImage.setVisibility(ImageView.INVISIBLE);    } }但是运行代码后,点击按钮,图像一直是不可见的。我是不是该用另一种方法来实现这个功能呢?使用handlers还是不对,还有什么方法呢?
查看完整描述

3 回答

?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

恩,你可以使用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);
}


查看完整回答
反对 回复 2019-04-26
?
炎炎设计

TA贡献1808条经验 获得超4个赞

不要让你的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)。


查看完整回答
反对 回复 2019-04-26
  • 3 回答
  • 0 关注
  • 572 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信