Xlistview

来源:互联网 发布:专业绘画软件 编辑:程序博客网 时间:2024/06/10 13:59
package com.bwie.skn.xianxi20.fragment;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.os.AsyncTask;import android.os.Bundle;import android.os.Handler;import android.support.annotation.Nullable;import android.support.v4.app.Fragment;import android.util.Log;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.bwie.skn.xianxi20.R;import com.bwie.skn.xianxi20.bean.JsonBean;import com.bwie.skn.xianxi20.xlistview.XListView;import com.google.gson.Gson;import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.URL;import java.util.ArrayList;import java.util.List;public class Fragment1 extends Fragment implements XListView.IXListViewListener{    @Nullable    private View view;    private XListView xlv;    Handler handler;    private List<JsonBean.ResultBean.RowsBean> list = new ArrayList<>();    private MyAdapter myAdapter;    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        view = inflater.inflate(R.layout.fragment1,container,false);        return view;    }    @Override    public void onActivityCreated(@Nullable Bundle savedInstanceState) {        super.onActivityCreated(savedInstanceState);        initView();        handler = new Handler();        myAdapter = new MyAdapter();        xlv.setAdapter(myAdapter);        initdata();    }    private void initdata() {        new MyAsyncTaskString().execute("http://api.fang.anjuke.com/m/android/1.3/shouye/recInfosV3/?city_id=14&lat=40.04652&lng=116.306033&api_key=androidkey&sig=9317e9634b5fbc16078ab07abb6661c5&macid=45cd2478331b184ff0e15f29aaa89e3e&app=a-ajk&_pid=11738&o=PE-TL10-user+4.4.2+HuaweiPE-TL10+CHNC00B260+ota-rel-keys%2Crelease-keys&from=mobile&m=Android-PE-TL10&cv=9.5.1&cid=14&i=864601026706713&v=4.4.2&pm=b61&uuid=1848c59c-185d-48d9-b0e9-782016041109&_chat_id=0&qtime=20160411091603");    }    private void initView() {        xlv =(XListView) view.findViewById(R.id.xlv);        //必须写        xlv.setPullLoadEnable(true);        xlv.setXListViewListener(this);    }    //适配器    class MyAdapter extends BaseAdapter{        public MyAdapter(){            super();        }        @Override        public int getCount() {            return list.size();        }        @Override        public Object getItem(int i) {            return list.get(i);        }        @Override        public long getItemId(int i) {            return i;        }        @Override        public View getView(int i, View view, ViewGroup viewGroup) {            Hordel hordel;            if(view == null){                hordel = new Hordel();                view = View.inflate(getActivity(),R.layout.lv_item_layout1,null);                hordel.image =(ImageView) view.findViewById(R.id.image);                hordel.text1 =(TextView) view.findViewById(R.id.text1);                view.setTag(hordel);            }else{                hordel = (Hordel) view.getTag();            }            hordel.text1.setText(list.get(i).getInfo().getLoupan_name());            new MyAsyncTaskImage(hordel.image).execute(list.get(i).getInfo().getDefault_image());            return view;        }    }    class Hordel{        ImageView image;        TextView text1;    }    //网络获取图片    class MyAsyncTaskImage extends  AsyncTask<String,Void,Bitmap>{        private ImageView imageView;        public MyAsyncTaskImage(ImageView imageView) {            this.imageView = imageView;        }        @Override        protected Bitmap doInBackground(String... strings) {            try {                URL url = new URL(strings[0]);                HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();                int responseCode = urlConnection.getResponseCode();                if(responseCode==200){                    InputStream inputStream = urlConnection.getInputStream();                    Bitmap bitmap = BitmapFactory.decodeStream(inputStream);                    return bitmap;                }            } catch (Exception e) {                e.printStackTrace();            }            return null;        }        @Override        protected void onPostExecute(Bitmap bitmap) {            super.onPostExecute(bitmap);            imageView.setImageBitmap(bitmap);        }    }    //网络获取接json    class MyAsyncTaskString extends AsyncTask<String,Void,String>{        @Override        protected String doInBackground(String... strings) {            try {                URL url = new URL(strings[0]);                HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();                int responseCode = urlConnection.getResponseCode();                if(responseCode==200){                    InputStream inputStream = urlConnection.getInputStream();                    BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));                    StringBuffer buffer = new StringBuffer();                    String str = "";                    while ((str = reader.readLine())!=null){                        buffer.append(str);                    }                    Log.e("String:",buffer.toString()+"+++++++++++++++++++++++++++++++++++");                    return buffer.toString();                }            } catch (Exception e) {                e.printStackTrace();            }            return null;        }        @Override        protected void onPostExecute(String s) {            super.onPostExecute(s);            Log.d("TAG", "onPostExecute: "+s);            Gson gson = new Gson();            JsonBean jsonBean = gson.fromJson(s, JsonBean.class);            List<JsonBean.ResultBean.RowsBean> rows = jsonBean.getResult().getRows();            Log.e("String", "onPostExecute:tempList "+rows.size());            list.addAll(rows);            Log.e("String", "onPostExecute:list.size() "+list.size());            myAdapter.notifyDataSetChanged();        }    }    //关闭    public void onLoad(){        xlv.stopRefresh();        xlv.stopLoadMore();        xlv.setRefreshTime("刚刚");    }    /**     * 下拉刷新     */    @Override    public void onRefresh() {        list.clear();        initdata();        onLoad();    }    //上拉加载    @Override    public void onLoadMore() {        initdata();        onLoad();    }}
原创粉丝点击