我尝试使用按钮运行进度条,(单击按钮并将变量发送到线程并使用它填充进度条)。 我已经使这个代码将变量发送到线程,然后更新进度条编号,最后将其发送到线程以在进度条完成后显示吐司,但是什么时候应该显示吐司,它没有做到这一点。代码按钮:
testme.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
Toast.makeText(getBaseContext(),"Descanzando ok, descanzando ",Toast.LENGTH_LONG).show();
Random rnd = new Random();
int n = rnd.nextInt(120-1)+1;
Toast.makeText(getBaseContext(),"el numero random es "+n,Toast.LENGTH_LONG).show();
startProgress(v,n);});
thred and toast:
public void startProgress(View view, int a) {
bar.setVisibility(View.VISIBLE);
bar.setProgress(0);
new Thread(new Task(a)).start();
}
class Task implements Runnable {
int num=0;
public Task(int a){
num=a;
}
@Override
public void run() {
for (int i = 0; i <= num; i++) {
final int value = i;
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
bar.setProgress(value);
if(value==num){
Toast.makeText(getBaseContext(),"Completado ok, completado!",Toast.LENGTH_LONG).show();
}
}
}
}
答案 0 :(得分:0)
我不确定你要做什么,但是Toast必须将活动本身作为上下文(而不是传递getBaseContext()),否则它将不会被显示。
顺便说一句,您应该考虑使用Handler并使用postDelay函数而不是所有这些:
http://developer.android.com/reference/android/os/Handler.html#postDelayed(java.lang.Runnable,长)