Java progressbar'中的toast错误;s线程android
我尝试用一个按钮运行progressbar(单击按钮并向线程发送一个变量,并用它填充progressbar)。 我编写了这段代码,将变量发送到线程,然后更新progressbar编号,最后在progressbar完成后将其发送到线程以显示toast,但是当应该显示toast时,它没有这样做。代码按钮:Java progressbar'中的toast错误;s线程android,java,android,multithreading,progress-bar,Java,Android,Multithreading,Progress Bar,我尝试用一个按钮运行progressbar(单击按钮并向线程发送一个变量,并用它填充progressbar)。 我编写了这段代码,将变量发送到线程,然后更新progressbar编号,最后在progressbar完成后将其发送到线程以显示toast,但是当应该显示toast时,它没有这样做。代码按钮: testme.setOnClickListener(new Button.OnClickListener() { public void onClick(View v) {
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);});
祝酒辞:
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();
}
}
}
}
public void startProgress(视图,int a){
bar.setVisibility(View.VISIBLE);
进度条(0);
新线程(新任务(a)).start();
}
类任务实现可运行{
int num=0;
公共任务(INTA){
num=a;
}
@凌驾
公开募捐{
对于(int i=0;i我不确定您想做什么,但是Toast必须将活动本身作为上下文(而不是传递getBaseContext()),否则它不会显示
顺便说一下,您应该真正考虑使用处理程序并使用PayStor函数,而不是所有这些:
,长)