2013-05-20 30 views
2

我使用AsyncTask計算double,然後我要發佈此雙重價值的AsyncTask onProgressUpdate(雙...值)

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); 
    } 
} 

目前的輸出是:

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

有沒有辦法只發布double值而不是十六進制地址?

+1

這與您的其他問題中的問題也有類似的根源([請參閱我的答案](http://stackoverflow.com/a/16662775/ 119114))。關鍵的一點是,即使你將一個單獨的值**傳遞給'publishProgress()','onProgressUpdate()'也會被回調,並且傳遞一個**數組**值。這樣做可以讓您靈活地一次傳遞1..N個進度值。 – Nate

回答

2

您正在看到Double陣列calcObject#toString代理onProgressUpdate。只需使用陣列的第一個元素:

textview.setText("Value: " + calc[0]); 
相關問題