我不能使用带有asynctask的多个构造函数。我需要分别使用FetchTask(类别)和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()时发生错误
答案 0 :(得分:0)
您可以使用多个构造函数。 这段代码编译很有趣,还有其他问题,但这与主题无关。
希望这有帮助, 亚龙
答案 1 :(得分:0)
您可以使用多个构造函数。 看你的代码:
public FetchTask (final Category cat) {
this.category = cat;
}
如果您使用上面的构造函数来启动AsyncTask
,则会出现错误。
见
@Override
protected void onPostExecute(String result) {
Txt.setText(result);
}
您没有使用第一个costructor初始化Txt
。
我认为您无需从构造函数中调用super();
。