问题描述
- android中使用按钮来更新UI
- 使用以下代码想实现:当点击一个按钮后要显示一个图像,两秒后这个图像又变得不可见。
button.setOnClickListener(new OnClickListener() { public void onClick(View v) { firstImage.setVisibility(ImageView.VISIBLE); // delay of some sort firstImage.setVisibility(ImageView.INVISIBLE); }}
但是运行代码后,点击按钮,图像一直是不可见的。我是不是该用另一种方法来实现这个功能呢?使用handlers还是不对,还有什么方法呢?
解决方案
恩,你可以使用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)。
解决方案三:
调用 imageView's setvisibility方法,需要使用一个 hanlder
Handler handler = new Handler();handler.post(new Runnable() { public void run() { image.setVisibiliy(VISIBLE); Thread.sleep(200); image.setVisibility(INVISIBLE); }});
时间: 2024-08-31 11:50:44