package com.bwei.Test.zhangjian20170812lianxi.Activity; import android.graphics.Path; import android.os.AsyncTask; import android.os.Handler; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; import com.bwei.Test.zhangjian20170812lianxi.Bean.MyBean; import com.bwei.Test.zhangjian20170812lianxi.Bean.MyData; import com.bwei.Test.zhangjian20170812lianxi.R; import com.bwei.imageloaderlibrary.ImageLoaderUtils; import com.google.gson.Gson; import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoader; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; 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.DecompressingHttpClient; import cz.msebera.android.httpclient.impl.client.DefaultHttpClient; import test.bwei.com.xlistlibrary.XListView; public class MainActivity extends AppCompatActivity { private XListView listView; private List<MyData> list; private MyAdapter adapter; private int page=1; private Handler handler=new Handler(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView= (XListView) findViewById(R.id.xlv); listView.setPullLoadEnable(true); listView.setPullRefreshEnable(true); listView.setXListViewListener(new XListView.IXListViewListener() { @Override public void onRefresh() { getTime(); page=1; getData(); handler.postDelayed(new Runnable() { @Override public void run() { listView.stopRefresh(); } },2000); } @Override public void onLoadMore() { handler.postDelayed(new Runnable() { @Override public void run() { page++; getData(); listView.stopLoadMore(); } },2000); } }); getData(); } public void getTime(){ long millis = System.currentTimeMillis(); Date date= new Date(millis); SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String format1 = format.format(date); listView.setRefreshTime(format1); } public void getData(){ final String path="http://api.expoon.com/AppNews/getNewsList/type/3/p/"+page; MyAsayTask task=new MyAsayTask(); task.execute(path); } class MyAsayTask extends AsyncTask<String,Integer,String>{ @Override protected String doInBackground(String... params) { //获取接口地址 String url=params[0]; //创建网络请求 HttpClient client=new DefaultHttpClient(); //请求方式 HttpGet get=new HttpGet(url); //通过网路请求 try { HttpResponse response = client.execute(get); //判断请求码 按行读取 if (response.getStatusLine().getStatusCode()==200){ //得到输出流 InputStream inputStream = response.getEntity().getContent(); String json = Stream(inputStream); return json; } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); Gson gson=new Gson(); MyBean myBean = gson.fromJson(s, MyBean.class); // list = myBean.getData(); if (page==1){ list=new ArrayList<>(); } for (int i=0;i<myBean.getData().size();i++){ list.add(myBean.getData().get(i)); } initData(); } } public String Stream(InputStream inputStream) throws IOException { byte[] byt=new byte[1024]; int len=0; ByteArrayOutputStream arrayOutputStream=new ByteArrayOutputStream(); try { while ((len=inputStream.read(byt))!=-1){ arrayOutputStream.write(byt,0,len); } return arrayOutputStream.toString("utf-8"); } catch (IOException e) { e.printStackTrace(); } return null; } public void initData(){ if (adapter==null){ adapter=new MyAdapter(); listView.setAdapter(adapter); }else { adapter.notifyDataSetChanged(); } } class MyAdapter extends BaseAdapter{ @Override public int getCount() { return list!=null?list.size():0; } @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; if (convertView==null){ convertView=View.inflate(MainActivity.this,R.layout.listview,null); holder=new ViewHolder(); holder.textView= (TextView) convertView.findViewById(R.id.news_summary); holder.imageView= (ImageView) convertView.findViewById(R.id.pic_url); convertView.setTag(holder); }else { holder= (ViewHolder) convertView.getTag(); } holder.textView.setText(list.get(position).getNews_summary()); DisplayImageOptions options = ImageLoaderUtils.getOptions(); ImageLoader.getInstance().displayImage(list.get(position).getPic_url(),holder.imageView,options); return convertView; } } class ViewHolder{ TextView textView; ImageView imageView; } }
HttpClick+XListview
最新推荐文章于 2020-12-08 04:45:56 发布