gpt4 book ai didi

android设置定时器按钮的可见性

转载 作者:可可西里 更新时间:2023-11-01 19:08:33 24 4
gpt4 key购买 nike

我有一个在程序开头显示免责声明的应用程序。我想让一个按钮在一段时间内保持不可见,然后变得可见。我设置了一个休眠 5 秒的线程,然后尝试使按钮可见。但是,当我执行我的代码时出现此错误:

08-02 21:34:07.868: ERROR/AndroidRuntime(1401): android.view.ViewRoot$CalledFromWrongThreadException: 只有创建 View 层次结构的原始线程才能触及它的 View 。

如何数到 5 秒,然后使按钮可见?谢谢。

Thread splashTread = new Thread() {
@Override
public void run() {
try {
int waited = 0;
while(_active && (!_ok2)) {
sleep(100);
if(_active) {
waited += 100;
if(waited >= _splashTime)
{
turnButtonOn();
}

}
}
} catch(InterruptedException e) {
// do nothing
} finally {
finish();
startActivity(new Intent("com.lba.mixer.Choose"));

}
};
splashTread.start();


public static void turnButtonOn() {
okButton.setVisibility(View.VISIBLE);
}

最佳答案

问题是当您调用 okButton.setVisibility(View.VISIBLE); 时您不在 UI 线程中,因为您创建并运行了自己的线程。您需要做的是获取按钮的处理程序,并通过处理程序获取的 UI 线程设置可见性。

所以代替

okButton.setVisibility(View.VISIBLE)

你应该做的

okButton.getHandler().post(new Runnable() {
public void run() {
okButton.setVisibility(View.VISIBLE);
}
});

关于android设置定时器按钮的可见性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3392147/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com