Xlistview

来源:互联网 发布:张杰 他不懂 知乎 编辑:程序博客网 时间:2024/06/05 19:08
package com.example.yue3;import android.os.AsyncTask;import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v4.app.Fragment;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;import com.example.xlistview_library.XListView;import com.google.gson.Gson;import com.nostra13.universalimageloader.core.ImageLoader;import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import java.net.URLConnection;import java.util.ArrayList;import java.util.List;import java.util.logging.Handler;/** * Created by  on 2017/9/20. */public class f1 extends Fragment implements XListView.IXListViewListener{    String path="http://gank.io/api/data/Android/10/1";    private XListView xlv;    List<User.ResultsBean> arr=new ArrayList<User.ResultsBean>();    private Madapter madapter;    private Handler hd;    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        View inflate = inflater.inflate(R.layout.f11, container, false);        xlv =(XListView)inflate.findViewById(R.id.xlv);        return inflate;    }    public static Fragment geto(String ss){        f1 ff = new f1();        Bundle bundle = new Bundle();        bundle.putString("name",ss);        ff.setArguments(bundle);        return ff;    }    @Override    public void onActivityCreated(@Nullable Bundle savedInstanceState) {        super.onActivityCreated(savedInstanceState);        Bundle arguments = getArguments();        String string = arguments.getString("name");        xlv.setPullLoadEnable(true);//必加        madapter = new Madapter();//适配器        xlv.setAdapter(madapter);        xlv.setXListViewListener(this);        new MasayTask().execute(path);    }    //异步    class MasayTask extends AsyncTask<String,Void,String>{        @Override        protected String doInBackground(String... params) {            try {                URL url = new URL(path);                HttpURLConnection urlConnection = (HttpURLConnection)url.openConnection();                int responseCode = urlConnection.getResponseCode();                if (responseCode==200){                    InputStream inputStream = urlConnection.getInputStream();                    BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));                    StringBuilder builder = new StringBuilder();                    String string="";                    while ((string=bufferedReader.readLine())!=null){                        builder.append(string);                    }                    return builder.toString();                }            } catch (Exception e) {                e.printStackTrace();            }            return null;        }        @Override        protected void onPreExecute() {            super.onPreExecute();        }        @Override        protected void onPostExecute(String s) {            super.onPostExecute(s);            Gson gson = new Gson();            User user = gson.fromJson(s, User.class);            List<User.ResultsBean> results = user.getResults();            arr.addAll(results);            madapter.notifyDataSetChanged();        }        @Override        protected void onProgressUpdate(Void... values) {            super.onProgressUpdate(values);        }    }    public void onLoad(){        xlv.stopRefresh();        xlv.stopLoadMore();        xlv.setRefreshTime("刚刚");    }    //适配器    class Madapter extends BaseAdapter{        @Override        public int getItemViewType(int position) {            if (arr.get(position).getImages()==null){                return 0;            }            return 1;        }        @Override        public int getViewTypeCount() {            return 2;        }        @Override        public int getCount() {            return arr.size();        }        @Override        public Object getItem(int position) {            return arr.get(position);        }        @Override        public long getItemId(int position) {            return position;        }        @Override        public View getView(int position, View convertView, ViewGroup parent) {            int itemViewType = getItemViewType(position);            User.ResultsBean resultsBean = arr.get(position);            switch (itemViewType){                case 0:                    ViewHolder1 vh1;                    if (convertView==null){                        convertView = View.inflate(getActivity(), R.layout.duo2, null);                        vh1=new ViewHolder1();                        vh1.tv1=(TextView) convertView.findViewById(R.id.tv1);                        convertView.setTag(vh1);                    }else{                        vh1=(ViewHolder1) convertView.getTag();                    }                    vh1.tv1.setText(resultsBean.getDesc());                    break;                case 1:                    ViewHolder vh;                    if (convertView==null){                        convertView = View.inflate(getActivity(), R.layout.duo, null);                        vh = new ViewHolder();                        vh.tv=(TextView) convertView.findViewById(R.id.tv);                        vh.img=(ImageView) convertView.findViewById(R.id.img);                        convertView.setTag(vh);                    }else{                        vh=(ViewHolder) convertView.getTag();                    }                    vh.tv.setText(resultsBean.getDesc());                    ImageLoader.getInstance().displayImage(resultsBean.getImages().get(0),vh.img);                    break;            }            return convertView;        }        class ViewHolder{            ImageView img;            TextView tv;        }        class ViewHolder1{            TextView tv1;        }        }    @Override    public void onRefresh() {       arr.clear();        new MasayTask().execute("http://gank.io/api/data/Android/10/1");       onLoad();    }    @Override    public void onLoadMore() {        new MasayTask().execute("http://gank.io/api/data/Android/10/1");        onLoad();    }}
 
原创粉丝点击