下载XlistView Moudle的网址
https://github.com/Maxwin-z/XListView-Android
首先我们通过网址下载Xlist的Moudled到本地
接下来就是代码实现功能了
package com.bwie.aizhonghui.xlist_imageloader;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import com.bwie.aizhonghui.xlist_imageloader.Adapter.MyAdapter;
import com.bwie.aizhonghui.xlist_imageloader.Bean.Mybean;
import com.bwie.aizhonghui.xlist_imageloader.HttpUrl.MyAsyncTask;
import com.bwie.aizhonghui.xlist_imageloader.com.bwie.xlistme.XListView;
import org.json.JSONArray;
import org.json.JSONObject;
public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener{
private String url="http://v.juhe.cn/toutiao/index?type=yule&&key=22a108244dbb8d1f49967cd74a0c144d";
private XListView lv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
//此类为我自定义的的一个请求网络数据的类
new MyAsyncTask(MainActivity.this,lv).execute(url);
}
private void initView() {
lv= (XListView) findViewById(R.id.lv);
lv.setPullLoadEnable(true);
lv.setXListViewListener(MainActivity.this);
}
//下拉刷新
@Override
public void onRefresh() {
new MyAsyncTask(MainActivity.this,lv).execute(url);
}
//上拉加载,方法内具体内容根据项目需求自行补充
@Override
public void onLoadMore() {
}
}
//请求网络数据的类
package com.bwie.aizhonghui.xlist_imageloader.HttpUrl;
import android.content.Context;
import android.os.AsyncTask;
import android.widget.ListView;
import com.bwie.aizhonghui.xlist_imageloader.Adapter.MyAdapter;
import com.bwie.aizhonghui.xlist_imageloader.Bean.Mybean;
import com.bwie.aizhonghui.xlist_imageloader.com.bwie.xlistme.XListView;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Administrator on 2017/8/15.
*/
public class MyAsyncTask extends AsyncTask<String,Integer,String>{
private List<Mybean> mlist=new ArrayList<Mybean>();
private MyAdapter ma;
private Context context;
private XListView lvl;
public MyAsyncTask(Context context, XListView lvl) {
this.context = context;
this.lvl = lvl;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected String doInBackground(String... strings) {
String result=null;
try {
URL murl=new URL(strings[0]);
HttpURLConnection connection= (HttpURLConnection) murl.openConnection();
connection.connect();
if(200==connection.getResponseCode()){
InputStream in = connection.getInputStream();
int length=-1;
byte[] arr=new byte[1024];
ByteArrayOutputStream baos=new ByteArrayOutputStream();
while((length=in.read(arr))!=-1){
baos.write(arr,0,length);
}
result=baos.toString();
return result;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
JSONjie(s);
}
private void JSONjie(String s) {
try {
JSONObject obj = new JSONObject(s);
JSONObject result = obj.getJSONObject("result");
JSONArray data = result.getJSONArray("data");
if(data!=null&&data.length()>0){
for (int i = 0; i <data.length(); i++) {
JSONObject js = data.getJSONObject(i);
Mybean mb=new Mybean();
mb.title=js.getString("title");
mb.author_name=js.getString("author_name");
mb.thumbnail_pic_s=js.getString("thumbnail_pic_s");
mlist.add(mb);
}
}
if(mlist!=null){
setDate();
}
} catch (Exception e) {
e.printStackTrace();
}
}
private void setDate() {
ma=new MyAdapter(context,mlist);
lvl.setAdapter(ma);
lvl.stopRefresh();
lvl.stopLoadMore();
}
}