0

asynctask で複数のコンストラクターを使用することはできません。FetchTask(category) と FetchTask(textview) を別々に使用する必要があります。[ 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);        
}

最初のコンストラクターで初期化していませんTxtsuper();そして、コンストラクタから呼び出す必要はないと思います。

于 2013-04-09T18:34:06.217 に答える