0

これが私のアクティビティコードの一部です:

button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                IParser = new ImageParser(MainActivity.this, EarthqpicUrl);
                IParser.execute();
            }
        });

そして、これは私の AsyncTask コードの一部です:

AsyncResponse lempar; *//this is An interface*
public ImageParser(Context actv, String EarthqpicUrl){
   this.actv=actv;
   this.EarthqpicUrl=EarthqpicUrl;
   this.lempar = (AsyncResponse) actv;
}

これはインターフェイス コードです。

import android.graphics.Bitmap;

public interface AsyncResponse {
    public void processFinish(Bitmap output);
}

JSONData の解析に同じコードを使用していますが、動作します。しかし、クラス名などの変更後に同じコンストラクターを使用すると、デバッグ中にエラーが表示されます。

Thread [<1> main] (Suspended (Exception ClassCastException))
ImageParser.<init>(Context, String) Line:25
MainActivity$1.onCllick(View) line: 23 

このコードの何が問題になっていますか? 誰か助けてくれませんか?どうもありがとう

これらは、JSONParser で使用するコードの一部です。

AsyncResponse delegate;

public JSONParser(Context actv,String url){
    this.actv=actv;
    this.url = url;
    this.delegate = (AsyncResponse) actv;
}

JSONParser と同じように、AsyncResponse という名前のインターフェイスを使用します。

4

1 に答える 1

1

タイプのオブジェクトを にキャストしていContextますAsyncResponse:

this.lempar = (AsyncResponse) actv;

これがエラーの原因です。

于 2013-07-18T10:21:27.077 に答える