package fmh.bwie.com.fanmeihua20170909; 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 com.google.gson.Gson; import com.nostra13.universalimageloader.core.ImageLoader; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; import java.util.List; import fmh.bwie.com.fanmeihua20170909.View.XListView; import fmh.bwie.com.fanmeihua20170909.bean.Us; public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener{ private XListView xlv; //定义地址 String url="http://api.expoon.com/AppNews/getNewsList/type/1/p/1"; private MyAdapter myAdapter; private List<Us.DataBean> dataBeanList = new ArrayList<>(); private Handler handler; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获取控件 xlv = (XListView)findViewById(R.id.xlv); //创建适配器 myAdapter = new MyAdapter(); //设置适配器 xlv.setAdapter(myAdapter); //加载数据 indata(); //可以下拉 xlv.setPullLoadEnable(true); xlv.setXListViewListener(this); handler = new Handler(); } //加载数据的方法 private void indata() { new MyAsycnJson().execute(url); } //刷新的方法 @Override public void onRefresh() { handler.postDelayed(new Runnable() { @Override public void run() { dataBeanList.clear(); indata(); myAdapter.notifyDataSetChanged(); onLoad(); } },2000); } //加载更多的方法 @Override public void onLoadMore() { handler.postDelayed(new Runnable() { @Override public void run() { indata(); myAdapter.notifyDataSetChanged(); onLoad(); } },2000); } public void onLoad(){ xlv.stopRefresh(); xlv.stopLoadMore(); xlv.setRefreshTime("刚刚"); } //创建一个异步加载Json串的方法 private class MyAsycnJson extends AsyncTask<String,Void,String>{ //在子线程中运行的方法 @Override protected String doInBackground(String... strings) { try { //实例化URL类 URL url = new URL(strings[0]); //获取HttpURLConnection对象 HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); //获取响应码 int responseCode = urlConnection.getResponseCode(); //判断响应码 if (responseCode==200){ //获取输入流 InputStream inputStream = urlConnection.getInputStream(); //实例化字符输入流 BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); //实例化StringBuffer对象 StringBuffer stringBuffer = new StringBuffer(); String str = ""; while((str=bufferedReader.readLine())!=null){ //拼接字符 stringBuffer.append(str); } //返回String return stringBuffer.toString(); } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } @Override protected void onPreExecute() { super.onPreExecute(); } @Override protected void onPostExecute(String s) { super.onPostExecute(s); Gson gson = new Gson(); Us us = gson.fromJson(s, Us.class); List<Us.DataBean> data = us.getData(); dataBeanList.addAll(data); myAdapter.notifyDataSetChanged(); } @Override protected void onProgressUpdate(Void... values) { super.onProgressUpdate(values); } } private class MyAdapter extends BaseAdapter{ @Override public int getCount() { return dataBeanList.size(); } @Override public Object getItem(int i) { return dataBeanList.get(i); } @Override public long getItemId(int i) { return i; } @Override public View getView(int i, View view, ViewGroup viewGroup) { ViewHolder vh; if (view==null){ view = View.inflate(MainActivity.this,R.layout.scenic_item_list,null); vh = new ViewHolder(); vh.img = (ImageView)view.findViewById(R.id.img); vh.title2 = (TextView)view.findViewById(R.id.title2); vh.content=(TextView)view.findViewById(R.id.content); view.setTag(vh); }else{ vh = (ViewHolder)view.getTag(); } ImageLoader.getInstance().displayImage(dataBeanList.get(i).getPic_url(),vh.img); vh.title2.setText(dataBeanList.get(i).getNews_title()); vh.content.setText(dataBeanList.get(i).getNews_summary()); return view; } class ViewHolder{ ImageView img; TextView title2,content; } } }
XlistView
最新推荐文章于 2018-12-07 13:45:11 发布