Java 作用域中没有封闭实例-类之间的方法调用
我对android应用程序的编程相当陌生,实际上这是我的第一次,所以很抱歉我的问题(可能很简单) 我想做的就是通过httprequest在一个网站上发布一些值(到目前为止效果很好),如果成功的话(这就是问题所在),然后得到一条消息。我的课堂活动如下所示:Java 作用域中没有封闭实例-类之间的方法调用,java,android,class,methods,Java,Android,Class,Methods,我对android应用程序的编程相当陌生,实际上这是我的第一次,所以很抱歉我的问题(可能很简单) 我想做的就是通过httprequest在一个网站上发布一些值(到目前为止效果很好),如果成功的话(这就是问题所在),然后得到一条消息。我的课堂活动如下所示: public class MainActivity extends Activity implements OnClickListener { private Button sendButton; private Button graficB
public class MainActivity extends Activity implements OnClickListener {
private Button sendButton;
private Button graficButton;
[...]
@Override
public void onClick(View v) {
[...]
new ExecutePost().execute(zusammen);
return;
}
public void checkResponse(Integer responseCode) {
if(responseCode == 200){
new AlertDialog.Builder(this)
.setMessage(R.string.response_ok)
.setNeutralButton(R.string.error_ok, null)
.show();
return;
}else{
new AlertDialog.Builder(this)
.setMessage(R.string.response_false)
.setNeutralButton(R.string.error_ok, null)
.show();
return;
}
}
在类ExecutePost中,我尝试从MainActivity类调用函数checkResponse,但在那里我得到了编译器错误:
在作用域中无法访问MainActivity类型的封闭实例
这是我如何编写类ExecutePost的:
public class ExecutePost extends AsyncTask<String, Void, HttpResponse>{
private IOException exception;
private ClientProtocolException clientException;
@Override
public HttpResponse doInBackground(String... alles) {
works fine
}
@Override
protected void onPostExecute(HttpResponse resRes) {
Integer code = resRes.getStatusLine().getStatusCode();
super.onPostExecute(resRes);
MainActivity.this.checkResponse(code);
}
public类ExecutePost扩展异步任务{
私有IOException;
私人客户协议例外客户例外;
@凌驾
公共HttpResponse doInBackground(字符串…alles){
很好
}
@凌驾
受保护的void onPostExecute(HttpResponse resresres){
整数代码=resRes.getStatusLine().getStatusCode();
super.onPostExecute(resresres);
MainActivity.this.checkResponse(代码);
}
}
我在*MainActivity.this.*checkResponse(代码)的最后一行中得到错误消息;我想这与实例/静态非静态方法有关,所以
提前谢谢。
Timo如果要将代码传递给activity类,请使用InterfaceO或将asynctask作为MainActivity的内部类,那么需要在post execute中回调Main activity。您可以根据结果在postExecute中显示警报对话框。非常感谢,界面工作正常!