2015-12-20 36 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

上面标记为重复。此外,这个问题几乎是一年 –