首页 > 解决方案 > 以固定的时间间隔更改 Android UI

问题描述

主要动机是非常基本的:暂停循环使 UI 发生变化,再次暂停使 UI 更改为动态创建的 View(s) 并手动将 id(s) 分配给视图。

Thread.sleep() 不工作

for(int i=0;i<n;i++){
Handler handler = new Handler();
                            handler.postDelayed(new Runnable() {
                                @Override
                                public void run() {
                                    @SuppressLint("ResourceType") Button mButton = (Button) findViewById(i);
                                    mButton.setBackgroundColor(Color.parseColor("#ABCDEF"));
                                }
                            }, 1000);
}

使用 Handler 也不起作用。当 Handler 被放入循环时,它总是取循环的最后一个值,即 n-1 总是。

标签: androidandroid-studioandroid-layout

解决方案


我认为你必须澄清这个问题并详细说明你所说的睡眠不起作用>>>你以这种方式使用它吗?

Thread.sleep(1000); // do nothing for 1000 miliseconds

你可以试试

Thread.wait(sleeptime);//Sample Thread.wait(1000); 1 second sleep

但总的来说延迟android中的主线程不是很好的参考java-delay-wait


推荐阅读