Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.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 AsyncTask onProgressUpdate(双…值)_Java_Android_Android Asynctask_Double - Fatal编程技术网

Java AsyncTask onProgressUpdate(双…值)

Java AsyncTask onProgressUpdate(双…值),java,android,android-asynctask,double,Java,Android,Android Asynctask,Double,我正在使用AsyncTask计算一个double,然后我想发布这个double值 private class CalcTask extends AsyncTask<Void, Double, Void>{ @Override protected Void doInBackground(Void... parms){ //Completes calculations and places them in a double double

我正在使用
AsyncTask
计算一个double,然后我想发布这个double值

private class CalcTask extends AsyncTask<Void, Double, Void>{
    @Override
    protected Void doInBackground(Void... parms){
        //Completes calculations and places them in a double

        double calc = 54.245555 //arbitrary number for this example
        publishProgress(calc);

        return null;
    }

    protected void onProgressUpdate(Double... calc){
        textview.setText("Value: " + calc);
    }
}
私有类CalcTask扩展异步任务{
@凌驾
受保护的空位背景(空位…parms){
//完成计算并将其放置在双精度坐标系中
double calc=54.245555//此示例中的任意数字
出版进度(calc);
返回null;
}
受保护的void onProgressUpdate(双重…计算){
setText(“值:”+calc);
}
}
目前的输出是:

值:[L]java.lang.Double@4054d180

有没有一种方法可以只发送双精度值而不发送十六进制地址?

您可以在
onProgressUpdate
中看到
double
数组
calc
的表示形式。只需使用数组的第一个元素:

textview.setText("Value: " + calc[0]);

这与您的另一个问题中的问题也有类似的根本原因()。关键点是,即使将单个值传递给
publishProgress()
onProgressUpdate()
,也会被回调,并传递一个值数组。通过这种方式,您可以灵活地一次传递1..N个进度值。