在Asynctask中引用textview

时间:2017-05-21 13:05:58

标签: android android-asynctask

我正在使用asynctask做一些xml的东西,我想在完成后更新textview,但是我遇到了以下问题,我无法使用findViewById引用textview。

public class HTTPRequestTask extends AsyncTask<String , Void, String > {

  @Override
protected String doInBackground(String... args) {

    q = (TextView)findViewById(R.id.xmlData); //cannot resolve findViewbyId

然后我想在post execute方法中更新textview。

@Override
protected void onPostExecute(String s) {
   super.onPostExecute(s);{
        q.setText(s);
    }
}

能够在postExecute方法中设置文本的最直接的方法是什么?

2 个答案:

答案 0 :(得分:0)

您应该参考嵌入了类Activity class的{​​{1}}。

例如:HTTPRequestTask

答案 1 :(得分:0)

您必须将Activity变量或TextView变量传递到HTTPRequestTask

我的意思是,创建构造函数,

    public class HTTPRequestTask extends AsyncTask<String , Void, String > {

    private Activity act;
private TextView q;
        public HTTPRequestTask (Activity act) {
        this.act = act;
 q = (TextView)act.findViewById(R.id.xmlData);
        }
        @Override
        protected String doInBackground(String... args) {
        //some code with your q

要开始任务,请使用:

new HTTPRequestTask(this).execute();