【发布时间】:2014-07-16 07:28:50
【问题描述】:
我的活动中有两个列表视图。我用了两次asynhttpclient请求数据,但是不知道怎么监控两次请求刷新我的listview。
有一些代码。
loadData( Constant.newGameUrl ,"new");
loadData( Constant.hotGameUrl ,"hot");
/**
* request data
* @param url
* @param type
*/
public void loadData( String url,
final String type,final int initpage){
H5RestClient.request(url, null, new OnRequestListener(){
@SuppressLint("ShowToast")
@Override
public void onRequestFinish(boolean ret, String data) {
// TODO Auto-generated method stub
List<Game> games = new ArrayList<Game>();
if( ret == true ){
try {
games = JsonParseUtil.parseGame(data);
} catch (JSONException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
if( games != null ){
netStateView.show(NetState.CONTENT);
if( type.equals("new")){
listNew.addAll(games);
newAdapter.notifyDataSetChanged();//this listview
}else if( type.equals("hot") ){
listHot.addAll(games);
hotAdapter.notifyDataSetChanged();//I want to display the two list view
}
}
else{
Toast.makeText(context, "result is null", Toast.LENGTH_SHORT).show();
}
}else{
Toast.makeText(context, "request is failed", Toast.LENGTH_SHORT).show();
}
}
});
}
public static void request(final String url, final RequestParams params, final OnRequestListener listener) {
AsyncHttpResponseHandler handler = new AsyncHttpResponseHandler(){
@Override
public void onSuccess(int statusCode, String responseBody){
Log.i(TAG, "success "+responseBody);
listener.onRequestFinish(true, responseBody);
}
@Override
public void onFailure(Throwable e, String responseBody){
Log.e(TAG, "fail "+responseBody);
listener.onRequestFinish(false, responseBody + "");
}
};
client.get(url, handler);
}
如何同时显示两个listview?
newAdapter.notifyDataSetChanged();//这个列表视图 hotAdapter.notifyDataSetChanged();//我要显示两个列表视图
【问题讨论】:
-
AsyncHttpClient for Android 有一个
onSuccess-方法,一旦请求完成就会返回你的响应。常规的AsyncTasks 有一个onPostExecute-方法。 -
我知道 onSuccess 方法。我想同时显示两个listview,但返回的数据时间不同。
-
然后您将不得不发布一些代码并向我们展示您已经尝试过什么,您的具体问题是什么。
标签: android