Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 带多个构造函数/不带构造函数的异步任务_Android_Constructor_Android Asynctask - Fatal编程技术网

Android 带多个构造函数/不带构造函数的异步任务

Android 带多个构造函数/不带构造函数的异步任务,android,constructor,android-asynctask,Android,Constructor,Android Asynctask,我不能将多个构造函数用于asynctask。我需要分别使用FetchTask(类别)和FetchTask(textview)。[未获取任务(类别,文本视图)] 可以使用多个构造函数吗?或者我可以为asynctask使用不同的构造函数/方法吗 public class FetchTask extends AsyncTask<String, Void, String> { TextView Txt; private Category category; pub

我不能将多个构造函数用于asynctask。我需要分别使用FetchTask(类别)和FetchTask(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);        
    }
}
公共类FetchTask扩展了AsyncTask{
文本视图;
私人类别;
公共获取任务(最终类别cat){
这个类别=猫;
}
公共获取任务(文本视图输出文本){
超级();
Txt=输出文本;
}
@凌驾
受保护的字符串doInBackground(字符串…str){
字符串Str=Str[0];
返回Str;
}
@凌驾
受保护的void onPostExecute(字符串结果){
Txt.setText(结果);
}
}
致命异常:AsyncTask#2


java.lang.RuntimeException:执行doInBackground()时出错。

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

希望这有帮助,
Yaron

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

public FetchTask (final Category cat) {    
    this.category = cat;
}
如果使用上述构造函数启动
AsyncTask
,则会出现错误。 见

您没有使用第一个构造函数初始化
Txt

我认为您不需要调用
super()来自构造函数。

你说“不能”是什么意思?你有没有试过并犯过错误?如果有,是什么错误?我从来没有尝试过使用多个,但我不知道为什么你不能。另外,这是一个内部类还是单独的文件?为什么不能使用多个构造函数?你有什么错误吗?如果是的话,你得到了什么错误,你从哪里得到的?而且,不需要调用
super()。在您的情况下,它是不需要的。它给出了致命的异常:AsyncTask#2错误。我可以使用FetchTask(category,textview),但不能单独使用它们。如果你的
FetchTask
是你活动的一个子类,那么在没有构造函数的情况下使用result呢。然后将
outputText
textView
作为主类(活动类)的类成员,您可以在子类中直接使用它;我想使用FetchTask(TextView OutputText)启动AsyncTask。我的主类包含FetchTask作为子类:FetchTask ft=newFetchTask(mytextview);ft.execute(位置);代码有错误吗?或者我必须添加到这些代码中的任何内容?`ft.execute(position);`这里的位置是什么?它是一个寻呼机;我将viewpager与asnctask一起使用。而doInBackground包含了它的位置;position=strYes,但在我缩短的主代码中还有一些代码。实际上,我意识到如果可能的话,我可能需要在doInBackground启动之前启动FetchTask(最终类别cat)?因为FetchTask(最终类别cat)有一个设置值的方法,doInBackground使用它。因此,必须在doInBackground开始之前设置它
 @Override
protected void onPostExecute(String result) {
    Txt.setText(result);        
}