gpt4 book ai didi

android - 线程完成后如何使图像可见?

转载 作者:行者123 更新时间:2023-11-30 02:57:34 27 4
gpt4 key购买 nike

我正在制作一个项目,其中我正在使用进度对话框,我想显示有关创建 Activity 的进度对话框,我能够做到这一点。在创建方法中,我希望图像不可见,并且我希望在完成进度对话框后图像可见,但它在 imagevisible(); 行中抛出异常;

日志是:

04-12 12:48:35.309: E/AndroidRuntime(4994):     at com.example.project1.ShowPassword$waiter.run(ShowPassword.java:59)

代码

        ImageView iv;

ProgressDialog p;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.showpass);

iv=(ImageView)findViewById(R.id.imageView1);
iv.setVisibility(View.INVISIBLE);

p= new ProgressDialog(this);
p.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
p.setTitle("Getting Password: ");
p.setMessage("Loading:");
p.setMax(100);
p.show();
Thread t=new Thread(new waiter());
t.start();

public class waiter extends Thread{

public void run(){

for(int i=0; i<5; i++){
p.incrementProgressBy(20);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}p.dismiss();
imagevisible();

}
}

public void imagevisible(){
iv.setVisibility(View.VISIBLE);
}

最佳答案

您不能从非 UI 线程更改 UI。您可以使用 ActivityrunOnUiThread 方法:

public class waiter extends Thread{
public void run(){

//...

runOnUiThread(new Runnable() {
@Override
public void run() {
imagevisible();
}
});
}
}

关于android - 线程完成后如何使图像可见?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23027565/

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