2015-12-20 67 views
0

我正在從一個項目,可以從雲服務器獲取數據,我使用ubidots作爲我的雲服務器。現在我試圖設置從服務器獲得的值以顯示在textView上,但我無法設置它。我需要找到一種方法,只要數據變量發生變化,就必須更改textView。我不知道在onPostExecute上做什麼。從服務器獲取數據,並更新onPostExecute視圖

public class ApiUbidots extends AsyncTask<Integer, Void, Value[]> { 
     private final String API_KEY = "86b3ab3XXXXXXXXXXXXXX"; 
     private final String VARIABLE_ID = "5660XXXXXXXXXXXXX"; 

     @Override 
     protected Value[] doInBackground(Integer... params) { 
      ApiClient apiClient = new ApiClient(API_KEY); 
      Variable gasDetector = apiClient.getVariable(VARIABLE_ID); 
      Value[] variableValues = gasDetector.getValues(); 

     return variableValues; 
    } 
@Override 
    protected void onPostExecute(Value[] variableValues) { 
     // Update your views here 

    } 
} 
+1

另外,我知道這個問題是舊的,但請不要[轉貼您的問題(HTTP://計算器。 com/questions/34248468/how-to-update-a-textview-from-within-onpostexecute) –

回答

0

如果你想顯示從ubidots到textview的最後一個值。你可以嘗試設置的TextView是mgasDetector

@Override 
    protected void onPostExecute(Value[] variableValues) { 
     // Update your views here 
String gas = Double.toString(variableValues[0].getValue()); 
      mgasDetector.setText(gas); 

    } 

可能是它可以幫助你

+0

這裏假設可以從AsyncTask –

+0

@ cricket_007訪問視圖。也許你有另一個解決方案 – redim

+0

上面標記爲重複。此外,這個問題幾乎是一年 –