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个进度值。