如何从onPostExecute中更新TextView

时间:2015-12-13 06:06:20

标签: android android-asynctask textview

在这里需要帮助,关于onPostExecute。如果我想将更新放在textView上应该是什么代码,我应该怎么做?。

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

    return variableValues;
}

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

2 个答案:

答案 0 :(得分:0)

执行以下操作,将TextView的引用保存为成员,并在嵌套的AsyncTask中使用它:

public class YourActivity extends Activity{

    private TextView textView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.your_activity_layout);
        textView = (TextView)findViewById(R.id.yourTextViewID);
    ...
    }

    private YourAsyncTask extends AsyncTask{
    ...
        @Override
        protected void onPostExecute(Value[] variableValues) {
            if(textView != null)
                textView.setText("your text");

         }
    }
}

答案 1 :(得分:0)

如果您想从Ubidots获取最后一个值到您的textview。你可以尝试这个,但你必须先将textview设置为OnCreate

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

            String status = Double.toString(variableValues[0].getValue());
//this is textview for show last value from ubidots
            mBatteryStatus.setText(status);

        }
    }