在我的一个项目中,我使用loopj asynchttpclient
与我的网站进行通信。通信部分工作良好,也得到响应
我的活动看起来像
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
WebRequest test=new WebRequest();
test.callService();
}
WebRequest类为
public class WebRequest extends Activity {
public void callService(){
AsyncHttpClient client = new AsyncHttpClient();
client.post("http://domain.com/dp/index.php", new AsyncHttpResponseHandler() {
@Override
public void onSuccess(String response) {
Log.v("P",response);
}
@Override
public void onFailure(Throwable e, String response) {
Log.v("PS",e.toString());
}
});
}
}
我很困惑如何将响应返回到主活动,这样我就可以根据该响应创建列表视图。
我是新手请帮帮我提前感谢
在WebRequest类中:
- 我认为你不希望这个类扩展
Activity
。只有在创建要在应用程序中显示的页面时,才应扩展Activity
。您只想执行一些代码,因此不需要扩展Activity
- 将您的呼叫服务方法更改为静态,并将
AsyncHttpClient
作为参数
您的WebRequest
类现在应该是这样的:
final class WebRequest {
private AsyncHttpClient mClient = new AsyncHttpClient();
public static void callService(AsyncHttpResponseHandler handler) {
mClient.post("http://domain.com/dp/index.php", handler);
}
}
在主活动中:
现在,您在主要活动中所要做的就是调用如下静态方法:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
WebRequest.callService(new AsyncHttpResponseHandler() {
@Override
public void onStart() {
// Initiated the request
}
@Override
public void onSuccess(String response) {
// Successfully got a response
}
@Override
public void onFailure(Throwable e, String response) {
// Response failed :(
}
@Override
public void onFinish() {
// Completed the request (either success or failure)
}
});
}
在上述回调中,对活动中的视图执行任何需要执行的操作。希望这能有所帮助!