以下是我的活动代码的一部分:
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的接口。
答案 0 :(得分:1)
您正在将Context
类型的对象投射到AsyncResponse
:
this.lempar = (AsyncResponse) actv;
这就是造成错误的原因。