package com.example.listview_;
import java.util.ArrayList;
import java.util.List;
import com.example.day07_listview_.XListView.IXListViewListener;
import com.example.day07_listview_.bean.Bean;
import com.example.day07_listview_.bean.Data;
import com.example.day07_listview_.bean.News;
import com.google.gson.Gson;
import com.lidroid.xutils.HttpUtils;
import com.lidroid.xutils.exception.HttpException;
import com.lidroid.xutils.http.ResponseInfo;
import com.lidroid.xutils.http.callback.RequestCallBack;
import com.lidroid.xutils.http.client.HttpRequest.HttpMethod;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.listener.PauseOnScrollListener;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
public class MainActivity extends Activity implements IXListViewListener {
String path = "http://ic.snssdk.com/2/article/v25/stream/?category=news_society&count=20&min_behot_time=1476067842&bd_latitude=4.9E-324&bd_longitude=4.9E-324&bd_loc_time=1476067224&loc_mode=5&lac=4527&cid=28883&iid=5567581950&device_id=23365548172&ac=wifi&channel=baidu&aid=13&app_name=news_article&version_code=460&device_platform=android&device_type=SCH-I919U&os_api=19&os_version=4.4.2&uuid=352284041184817&openudid=1111111111110000";
// 鍖哄垎璇锋眰涓嬫潵鐨勬暟鎹槸鍋氫粈涔堢敤鐨�
// 涓嬫媺鍒锋柊
public static final int REFRESH = 1;
// 涓婃媺鍔犺浇鏇村
public static final int LOADMORE = 2;
// 鍒濆鍖�
public static final int INIT = 3;
private MyBaseAdapter myBaseAdapter;
List<Data> list = new ArrayList<Data>();
Handler handler = new Handler() {
public void handleMessage(android.os.Message msg) {
// 鍙栧嚭鏁版嵁
Bean bean = (Bean) msg.obj;
int tag = msg.arg1;
switch (tag) {
// 绗竴娆″姞杞芥暟鎹�
case INIT:
// 鎶婃湁鏁版嵁鐨勯泦鍚堟坊鍔犲埌鍙︿竴涓泦鍚堥噷
list.addAll(bean.data);
myBaseAdapter = new MyBaseAdapter(MainActivity.this, list);
xListView.setAdapter(myBaseAdapter);
break;
// 鍒锋柊鏁版嵁
case REFRESH:
// 娓呯┖闆嗗悎
list.clear();
// 鎶婃湁鏁版嵁鐨勯泦鍚堟坊鍔犲埌鍙︿竴涓泦鍚堥噷
list.addAll(bean.data);
myBaseAdapter.notifyDataSetChanged();
stopXListView();
break;
// 鍔犺浇鏇村
case LOADMORE:
// 鎶婃湁鏁版嵁鐨勯泦鍚堟坊鍔犲埌鍙︿竴涓泦鍚堥噷
list.addAll(bean.data);
myBaseAdapter.notifyDataSetChanged();
stopXListView();
break;
}
};
};
private XListView xListView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
xListView = (XListView) findViewById(R.id.xListView);
// 婵�娲讳笂鎷夊姞杞芥洿澶�
xListView.setPullLoadEnable(true);
// xListView涓婃媺涓嬫媺鐩戝惉
xListView.setXListViewListener(this);
// 绗竴娆¤幏鍙栨暟鎹�
getData(INIT);
xListView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
String url = list.get(position-1).share_url;
startActivity(new Intent(MainActivity.this,
SecondActivity.class).putExtra("url", url));
}
});
//listView婊戝姩鐘舵�佹椂,imageloader涓嶅姞杞藉浘鐗�
xListView.setOnScrollListener(new PauseOnScrollListener(ImageLoader.getInstance(), true, true));
}
@Override
// 涓嬫媺鍒锋柊
public void onRefresh() {
getData(REFRESH);
}
@Override
// 涓婃媺鍔犺浇
public void onLoadMore() {
getData(LOADMORE);
}
public void stopXListView() {
xListView.stopLoadMore();
xListView.stopRefresh();
xListView.setRefreshTime("2016-10-10 11:11:11");
}
// 鑱旂綉鑾峰彇鏁版嵁
public void getData(final int tag) {
HttpUtils httpUtils = new HttpUtils();
httpUtils.configCurrentHttpCacheExpiry(0);
httpUtils.send(HttpMethod.GET, path, new RequestCallBack<String>() {
@Override
public void onFailure(HttpException arg0, String arg1) {
}
@Override
public void onSuccess(ResponseInfo<String> arg0) {
// 鍙栧嚭json
String s = arg0.result;
System.out.println(s);
// 瑙f瀽json
Gson gson = new Gson();
Bean bean = gson.fromJson(s, Bean.class);
// 鍙戦�乯son
Message msg = Message.obtain();
msg.obj = bean;
msg.arg1 = tag;
handler.sendMessage(msg);
}
});
}
}