Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java progressbar'中的toast错误;s线程android_Java_Android_Multithreading_Progress Bar - Fatal编程技术网

Java progressbar'中的toast错误;s线程android

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) {

我尝试用一个按钮运行progressbar(单击按钮并向线程发送一个变量,并用它填充progressbar)。 我编写了这段代码,将变量发送到线程,然后更新progressbar编号,最后在progressbar完成后将其发送到线程以显示toast,但是当应该显示toast时,它没有这样做。代码按钮:

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函数,而不是所有这些:

,长)