pri*_*nce 4 android android-ui android-activity
我正在listview使用以下代码设置项目的颜色parent.getChildAt(itemPosition).setBackgroundColor(Color.parseColor("#FF9494"));
我写的这段代码OnItemClickListener.
设置颜色后,我希望将此颜色保持4秒钟,然后将项目的颜色恢复为之前的颜色(比如白色).
我尝试在UI线程上进行睡眠,但我知道这不是一个正确的方法.
任何人都可以建议我如何实现这一目标?
parent.getChildAt(itemPosition).setBackgroundColor(Color.parseColor("#FF9494"));
// Start new Thread that sets the color back in 4 seconds
new Thread(new Runnable() {
@Override
public void run() {
SystemClock.sleep(4000); // Sleep 4 seconds
// Now change the color back. Needs to be done on the UI thread
runOnUiThread(new Runnable() {
@Override
public void run() {
parent.getChildAt(itemPosition).setBackgroundColor(Color.parseColor("#000000")); // use whatever other color you want here
}
});
}
}).start();
Run Code Online (Sandbox Code Playgroud)
主线程内有一个运行的循环程序。为此,可以安排延迟Runnable。在OnItemClickListener您的代码中可以简单如下:
@Override
public void onItemClick(AdapterView<?> parent, final View view, int position, long id) {
view.setBackgroundColor(Color.parseColor("#FF9494"));
view.postDelayed(new Runnable() {
@Override
public void run() {
view.setBackgroundColor(Color.parseColor("#FFFFFF"));
}
}, 4000);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2805 次 |
| 最近记录: |