//MainActivity 页面
package bwie.com.zhoukao2;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import com.google.gson.Gson;
import java.util.ArrayList;
import java.util.List;
import bean.UserBean;
import bwie.com.adapter.MyAdapter;
import utils.HttpUtils;
import view.XListView;
public class MainActivity extends AppCompatActivity {
private MyAdapter adapter;
private XListView xlistview;
private String path="http://www.yulin520.com/a2a/forum/allTypeList?sign=376C5BFC22179A1B8FF3A86D4588B29F&pageSize=10&ts=1877785007&forumType=0&page=";
private int page=1;
private List<UserBean.DataBean> list=new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initview();
getServiceData();
}
private void initview() {
xlistview = (XListView) findViewById(R.id.xlistview);
xlistview.setPullLoadEnable(true);
xlistview.setPullRefreshEnable(true);
xlistview.setXListViewListener(new XListView.IXListViewListener() {
@Override
public void onRefresh() {
page=1;
getServiceData();
}
@Override
public void onLoadMore() {
page+=1;
getServiceData();
}
});
//创建适配器
adapter = new MyAdapter(MainActivity.this, list);
xlistview.setAdapter(adapter);
}
public void getServiceData() {
//定义网络接口地址
String url=path+page;
//调用网络
HttpUtils httpUtils = HttpUtils.getinstance();
httpUtils.getData(url);
httpUtils.setjsonlisten(new HttpUtils.getjsonlisten() {
@Override
public void jsonlisten(String json) {
Gson gson = new Gson();
UserBean userBean = gson.fromJson(json, UserBean.class);
List<UserBean.DataBean> data = userBean.getData();
if (page==1) {
list.clear();
}
list.addAll(data);
//刷新适配器
adapter.notifyDataSetChanged();
if (page == 1) {
xlistview.stopRefresh();
}else {
xlistview.stopLoadMore();
}
}
});
}
}
//HttpUtils接口回调
package utils;
import android.os.AsyncTask;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import cz.msebera.android.httpclient.HttpResponse;
import cz.msebera.android.httpclient.client.HttpClient;
import cz.msebera.android.httpclient.client.methods.HttpGet;
import cz.msebera.android.httpclient.impl.client.DefaultHttpClient;
/**
* Created by 我 on 2018/7/15.
*/
public class HttpUtils {
private static HttpUtils httpUtils;
private getjsonlisten getjsonlisten;
public static HttpUtils getinstance(){
if (httpUtils==null){
httpUtils = new HttpUtils();
}
return httpUtils;
}
public void getData(String url){
MyAsycn myAsycn = new MyAsycn();
myAsycn.execute(url);
}
private class MyAsycn extends AsyncTask<String,Void,String>{
@Override
protected String doInBackground(String... params) {
HttpClient client=new DefaultHttpClient();
HttpGet get=new HttpGet(params[0]);
try {
HttpResponse response = client.execute(get);
int statusCode = response.getStatusLine().getStatusCode();
if (statusCode==200) {
InputStream inputStream = response.getEntity().getContent();
ByteArrayOutputStream bos=new ByteArrayOutputStream();
byte[] buffer=new byte[1024];
int len=0;
while ((len=inputStream.read(buffer))!=-1) {
bos.write(buffer,0,len);
}
inputStream.close();
bos.close();
String s = bos.toString();
return s;
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
getjsonlisten.jsonlisten(s);
}
}
public interface getjsonlisten{
public void jsonlisten(String json);
}
public void setjsonlisten(getjsonlisten getjsonlisten){
this.getjsonlisten=getjsonlisten;
}
}
//adapter
package bwie.com.adapter;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.nostra13.universalimageloader.core.ImageLoader;
import java.util.List;
import bean.UserBean;
import bwie.com.zhoukao2.R;
/**
* Created by 我 on 2018/7/15.
*/
public class MyAdapter extends BaseAdapter{
private Context context;
private List<UserBean.DataBean> list;
public MyAdapter(Context context, List<UserBean.DataBean> list) {
this.context = context;
this.list = list;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder=null;
if (convertView==null) {
convertView = View.inflate(context, R.layout.item_adapter, null);
holder = new ViewHolder();
holder.text_phone = (TextView) convertView.findViewById(R.id.text_phone);
holder.text_title = (TextView) convertView.findViewById(R.id.text_title);
holder.img = (ImageView) convertView.findViewById(R.id.img);
convertView.setTag(holder);
}else {
holder = (ViewHolder) convertView.getTag();
}
holder.text_title.setText(list.get(position).getTitle());
holder.text_phone.setText(list.get(position).getPhone());
ImageLoader.getInstance().displayImage(list.get(position).getHeadImg(),holder.img);
return convertView;
}
private class ViewHolder{
ImageView img;
TextView text_title;
TextView text_phone;
}
}
//加依赖和权限