package com.example.dailin.Fragment; import android.content.Intent; 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.AdapterView; import android.widget.Toast; import com.example.dailin.ContentActivity; import com.example.dailin.R; import com.example.dailin.adapter.XListAdapter; import com.example.dailin.bean.MyBean; import com.google.gson.Gson; import com.limxing.xlistview.view.XListView; import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import java.util.List; /** * Created by Administrator on 2017/9/11 0011. */ public class fragment01 extends Fragment implements XListView.IXListViewListener{ private XListView xlv; private boolean flag; private XListAdapter adapter; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment01, container, false); xlv =(XListView) view.findViewById(R.id.xlv); xlv.setXListViewListener(this); xlv.setPullLoadEnable(true); xlv.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { MyBean.ResultBean.DataBean bean = (MyBean.ResultBean.DataBean) adapter.getItem(i-1); Intent intent=new Intent(getActivity(), ContentActivity.class); intent.putExtra("info",bean.getUrl()); Toast.makeText(getContext(),bean.getUrl(),Toast.LENGTH_SHORT).show(); getActivity().startActivity(intent); } }); return view; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); data(); } public void data() { getdata("http://v.juhe.cn/toutiao/index?type=guoji&key=54e3d5f4ee64f51bef570ce8505d37b5"); } public void getdata(String path) { new AsyncTask<String,Void,String>() { @Override protected void onPostExecute(String s) { super.onPostExecute(s); if (s == null) { return; } Gson gson = new Gson(); MyBean bean = gson.fromJson(s, MyBean.class); List<MyBean.ResultBean.DataBean> list = bean.getResult().getData(); if (adapter == null) { adapter = new XListAdapter(list, getActivity()); xlv.setAdapter(adapter); } else { adapter.enough(list, flag); } } @Override protected String doInBackground(String... strings) { try { URL url = new URL(strings[0]); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setReadTimeout(5000); connection.setConnectTimeout(5000); int code = connection.getResponseCode(); if (code == 200) { InputStream is = connection.getInputStream(); String str = json(is); return str; } } catch (Exception e) { e.printStackTrace(); } return null; } }.execute(path); } public String json(InputStream is) { try { ByteArrayOutputStream baos = new ByteArrayOutputStream(); byte[] buffer = new byte[1024]; int len = 0; while ((len = is.read(buffer)) != -1) { baos.write(buffer,0,len); } baos.close(); return baos.toString(); } catch (Exception e) { e.printStackTrace(); } return null; } @Override public void onRefresh() { flag = false; data(); xlv.stopRefresh(true); } @Override public void onLoadMore() { flag = true; data(); xlv.stopLoadMore(); } }package com.example.dailin.adapter; import android.content.Context; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; import com.example.dailin.R; import com.example.dailin.bean.MyBean; import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoader; import java.util.List; /** * Created by Administrator on 2017/9/13 0013. */ public class XListAdapter extends BaseAdapter { private List<MyBean.ResultBean.DataBean> list; private Context context; private DisplayImageOptions options; public XListAdapter(List<MyBean.ResultBean.DataBean> list, Context context) { this.list = list; this.context = context; options = new DisplayImageOptions.Builder().build(); } public void enough(List<MyBean.ResultBean.DataBean> data, boolean flag) { for (MyBean.ResultBean.DataBean bean : data) { if (flag) { list.add(bean); } else { list.add(0, bean); } } notifyDataSetChanged(); } @Override public int getCount() { return list != null ? list.size() : 0; } @Override public Object getItem(int i) { return list.get(i); } @Override public long getItemId(int i) { return i; } @Override public int getViewTypeCount() { return 2; } @Override public int getItemViewType(int position) { if (position % 2 == 0) { return 0; } else { return 1; } } @Override public View getView(int i, View view, ViewGroup viewGroup) { int type = getItemViewType(i); ViewHolder1 holder1 = null; ViewHolder2 holder2 = null; MyBean.ResultBean.DataBean bean = list.get(i); switch (type) { case 0: { if (view == null) { holder1 = new ViewHolder1(); view = View.inflate(context, R.layout.item2, null); holder1.tv_title1 = (TextView) view.findViewById(R.id.tv_title1); holder1.img_inco1 = (ImageView) view.findViewById(R.id.img_inco1); holder1.img_inco2 = (ImageView) view.findViewById(R.id.img_inco2); holder1.img_inco3 = (ImageView) view.findViewById(R.id.img_inco3); view.setTag(holder1); } else { holder1 = (ViewHolder1) view.getTag(); } holder1.tv_title1.setText(bean.getTitle()); ImageLoader.getInstance().displayImage(bean.getThumbnail_pic_s(), holder1.img_inco1, options); ImageLoader.getInstance().displayImage(bean.getThumbnail_pic_s02(), holder1.img_inco2, options); ImageLoader.getInstance().displayImage(bean.getThumbnail_pic_s03(), holder1.img_inco3, options); } break; case 1: { if (view == null) { holder2 = new ViewHolder2(); view = View.inflate(context, R.layout.item3, null); holder2.tv_title2 = (TextView) view.findViewById(R.id.tv_title2); holder2.img_inco4 = (ImageView) view.findViewById(R.id.img_inco4); view.setTag(holder2); } else { holder2 = (ViewHolder2) view.getTag(); } holder2.tv_title2.setText(bean.getTitle()); ImageLoader.getInstance().displayImage(bean.getThumbnail_pic_s(), holder2.img_inco4, options); } break; } return view; } class ViewHolder1 { TextView tv_title1; ImageView img_inco1, img_inco2, img_inco3; } class ViewHolder2 { TextView tv_title2; ImageView img_inco4; } }
xlistview
最新推荐文章于 2019-01-09 20:30:06 发布