[英]Return from an over ridden method of return type void in an inner class
我正在尝试在Android Studio中开发一个应用程序。 我陷入这种情况。 我正在使用AsyncHttp客户端从MySQL数据库获取表名称的列表。 我正在从UI活动中调用以下函数以填充Spinner中的值。 但是我无法返回这些值。该值是在内部类中以及在其返回类型为void的重写方法内部检索的。 请查看代码以进一步了解。
public void fetchAvailableLocations ()
{
AsyncHttpClient httpClient = new AsyncHttpClient();
RequestParams requestParams = new RequestParams();
String _URL = ""; // Enter URL here
byte[] retreivedBytes;
httpClient.post(_URL, requestParams, responseHandler, new AsyncHttpResponseHandler() {
@Override
public void onSuccess(int i, cz.msebera.android.httpclient.Header[] headers, byte[] bytes) {
retrievedBytes = bytes; //This is where I'm stuck
}
@Override
public void onFailure(int i, cz.msebera.android.httpclient.Header[] headers, byte[] bytes, Throwable throwable) {
//make toasts
}
});
}
我想到的一种解决方案是在UI活动中创建一个静态字段,制作一个回调函数,该函数将bytes作为参数并将静态字段分配给bytes参数,然后从onSuceed方法调用它。 但是这条路看起来很丑。 有没有更简单的方法?
我是Android编程的新手,请帮忙。
而不是扩展使用继承:
public class fetchAvailableLocationsClass implements AsyncHttpResponseHandler {
public void fetchAvailableLocations() {
AsyncHttpClient httpClient = new AsyncHttpClient();
RequestParams requestParams = new RequestParams();
String _URL = ""; // Enter URL here
byte[] retreivedBytes;
httpClient.post(_URL, requestParams, responseHandler, this);
@Override
public void onSuccess ( int i, cz.msebera.android.httpclient.Header[] headers, byte[] bytes)
{
retrievedBytes = bytes; //This is where I'm stuck
}
@Override
public void onFailure ( int i, cz.msebera.android.httpclient.Header[] headers,
byte[] bytes, Throwable throwable){
//make toasts
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.