0

我不能将多个构造函数与 asynctask 一起使用。我需要分别使用 FetchTask(category) 和 FetchTask(textview)。[ NOT FetchTask(category,textview) ]

是否可以使用多个构造函数?或者我可以为 asynctask 使用不同的构造函数/方法吗?

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

    TextView Txt;
    private Category category;

    public FetchTask (final Category cat) {    
        this.category = cat;
    }

    public FetchTask(TextView outputTxt) {
        super();
        Txt = outputTxt;
    }

    @Override
    protected String doInBackground(String... str) {
        String Str = str[0];       
        return Str;
    }

    @Override
    protected void onPostExecute(String result) {
        Txt.setText(result);        
    }
}

致命异常:AsyncTask #2

java.lang.RuntimeException:执行 doInBackground() 时发生错误

4

2 回答 2

0

您可以使用多个构造函数。这段代码编译很有趣,还有其他问题,但这与主题无关。

希望这会有所帮助,亚龙

于 2013-04-09T18:04:11.013 回答
0

您可以使用多个构造函数。查看您的代码:

public FetchTask (final Category cat) {    
    this.category = cat;
}

如果您使用上述构造函数启动AsyncTask,则会出现错误。看

 @Override
protected void onPostExecute(String result) {
    Txt.setText(result);        
}

您没有Txt使用第一个构造函数进行初始化。而且我认为您无需super();从构造函数中调用。

于 2013-04-09T18:34:06.217 回答