public class frag2 extends Fragment implements XListView.IXListViewListener { String url = "http://www.93.gov.cn/93app/data.do?channelId=0&startNum=0"; private XListView xlv; private ImageLoader instance; ArrayList<Title.DataBean> listti = new ArrayList<>(); private MAdapter mAdapter; int type = 0; String a = "0"; String b = "20"; private ListView lv; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.f2, container, false); xlv = view.findViewById(R.id.xlv); instance = ImageLoader.getInstance(); mAdapter = new MAdapter(); xlv.setAdapter(mAdapter); xlv.setPullLoadEnable(true); //让XListView有上拉加载的功能; xlv.setXListViewListener(this);// 接口回调要把接口实现类设置进去, MainActivity就是(XListViewListener)它的实现了 lv = view.findViewById(R.id.flv); My m = new My(); lv.setAdapter(new My()); getViewTypeCount(); return view; } class My extends BaseAdapter { private final int type1 = 0; private final int type2 = 1; private TextView tv; private TextView tv1; private ImageView iv1; @Override public int getCount() { return listti.size(); } @Override public Object getItem(int i) { return null; } @Override public long getItemId(int i) { return 0; } @Override public View getView(int i, View view, ViewGroup viewGroup) { switch (type){ case 0: if(view==null){ view = View.inflate(getActivity(), R.layout.frag2list, null); tv = view.findViewById(R.id.frag2tv); tv.setText(listti.get(i).getTITLE()); } break; case 1: if(view==null){ view = View.inflate(getActivity(), R.layout.frag2list1, null); tv1 = view.findViewById(R.id.frag2tv1); iv1 = view.findViewById(R.id.frag2iv1); tv1.setText(listti.get(i).getTITLE()); ImageLoader.getInstance().displayImage(listti.get(i).getIMAGEURL(), iv1); break; } } return view; } } //返回条目有多少种类型 public int getViewTypeCount() { return 2; } //返回条目的类型 public int getItemViewType(int position) { if(listti.get(position).getIMAGEURL()==null){ type=0; } if(listti.get(position).getIMAGEURL()!=null){ type=1; } return type; } //联网的方法 private void getNetData() { new MAsyncTask().execute(url+a); } private void getNetData2() { new MAsyncTask().execute(url+b); } private class MAdapter extends BaseAdapter { @Override public int getCount() { return listti.size(); } @Override public Object getItem(int i) { return listti.get(i); } @Override public long getItemId(int i) { return 0; } @Override public View getView(int i, View view, ViewGroup viewGroup) { View viewItem = View.inflate(getActivity(), R.layout.list2, null); TextView textView = (TextView) viewItem.findViewById(R.id.tv); ImageView imageView = (ImageView) viewItem.findViewById(R.id.iv); textView.setText(listti.get(i).getTITLE()); instance.displayImage(listti.get(i).getIMAGEURL(),imageView); return viewItem; } } private class MAsyncTask extends AsyncTask<String,Void,String> { @Override protected String doInBackground(String... strings) { return NetWordUtils.getNetjson(strings[0]); } @Override protected void onPostExecute(String s) { super.onPostExecute(s); Gson gson = new Gson(); Title goods = gson.fromJson(s, Title.class); //得到集合; List<Title.DataBean> data = goods.getData(); //把从网络解析的数据放到adapter使用的集合里; listti.addAll(data); mAdapter.notifyDataSetChanged(); uiComplete();// 让刷新头 或者刷新底部ui返回; } } //下拉刷新 @Override public void onRefresh() { listti.clear(); getNetData(); } /** * 上啦加载 */ @Override public void onLoadMore() { getNetData2(); } /** * 让刷新头 或者刷新底部ui返回; */ private void uiComplete(){ xlv.stopRefresh();//停止刷新 xlv.stopLoadMore();//停止上拉加载更多 xlv.setRefreshTime("刚刚"); } }
ListView多条目每次加载数字加20和xlistview上拉下拉
最新推荐文章于 2019-01-03 15:07:14 发布