android 如何在Java中延迟代码执行?我正在用Java构建一个“内存游戏”

5ktev3wc  于 12个月前  发布在  Android
关注(0)|答案(2)|浏览(122)

我是Java新手,我决定在Android Studio上构建一个“记忆”游戏应用作为练习。到目前为止,我放置了12个按钮,当点击按钮时,文本会发生变化。一旦点击两个按钮,所有按钮都会被禁用。我需要在2秒后再次启用它们。我怎么做?
这是一个一次性启用/禁用所有按钮的代码。

for(int i=0; i<12; i++)
{
    int resID = getResources().getIdentifier("btn"+i,
            "id", getPackageName());
    Button botton =   findViewById(resID);
    botton.setEnabled(true);
}

字符串

p8h8hvxi

p8h8hvxi1#

我刚刚发现了一些似乎是工作阅读答案类似的问题。
这是我的新代码

new android.os.Handler(Looper.getMainLooper()).postDelayed(
        new Runnable() {
            public void run() {
                Log.i("tag", "This'll run 300 milliseconds later");

                for(int i=0; i<12; i++)
                {
                    int resID = getResources().getIdentifier("btn"+i,
                            "id", getPackageName());
                    Button botton =   findViewById(resID);
                    botton.setEnabled(true);
                }
            }
        },
        3000);

字符串

d7v8vwbk

d7v8vwbk2#

编辑:不要做我建议的事情,因为你正在做Android开发。参考这篇文章,也许能提供一些见解:How to add time delay in java code in android
你可以这样做的一个方法是:

Thread.Sleep(12000); //12,000ms = 12s
for (int i = 0; i < 12; i++) {
    int resID = getResources().getIdentifier("btn"+i,"id", getPackageName());
    Button botton = findViewById(resID);
    botton.setEnabled(true);

}

字符串

相关问题