public class MyFragment extends Fragment{ PullToRefreshListView ptlv; int index = 1; String mingzi = "Android"; LinkedList<Bean.ResultsBean> arr; List<Bean.ResultsBean> resu; MyAdp mm; DisplayImageOptions dp; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View v = View.inflate(getActivity(),R.layout.item_pull,null); ptlv = v.findViewById(R.id.pull_refresh_list); return v; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); dp = new DisplayImageOptions.Builder() .cacheInMemory(true) .cacheOnDisk(true) .displayer(new RoundedBitmapDisplayer(20)) .showImageOnFail(R.mipmap.ic_launcher) .bitmapConfig(Bitmap.Config.RGB_565) .build(); Bundle arguments = getArguments(); mingzi = arguments.getString("lujing"); ptlv.setMode(PullToRefreshBase.Mode.BOTH); arr = new LinkedList<Bean.ResultsBean>(); mm = new MyAdp(); ptlv.setAdapter(mm); try { new MyAstask().execute("http://gank.io/api/data/"+ URLEncoder.encode(mingzi,"UTF-8")+"/10/"+index); ptlv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() { @Override public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) { try { arr.clear(); index = 1; new MyAstask().execute("http://gank.io/api/data/"+URLEncoder.encode(mingzi,"UTF-8")+"/10/"+index); } catch (Exception e) { e.printStackTrace(); } } @Override public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) { try { index++; new MyAstask().execute("http://gank.io/api/data/"+URLEncoder.encode(mingzi,"UTF-8")+"/10/"+index); } catch (Exception e) { e.printStackTrace(); } } }); } catch (Exception e) { e.printStackTrace(); } } public static Fragment getDizhi(String jiepath){ MyFragment myFragment = new MyFragment(); Bundle bundle = new Bundle(); bundle.putString("lujing",jiepath); myFragment.setArguments(bundle); return myFragment; } class MyAstask extends AsyncTask<String,Void,String>{ @Override protected void onPreExecute() { super.onPreExecute(); } @Override protected void onPostExecute(String s) { super.onPostExecute(s); Gson gson = new Gson(); Bean be = gson.fromJson(s, Bean.class); resu = be.getResults(); arr.addAll(resu); mm.notifyDataSetChanged(); ptlv.onRefreshComplete(); } @Override protected void onProgressUpdate(Void... values) { super.onProgressUpdate(values); } @Override protected String doInBackground(String... strings) { try { URL ur = new URL(strings[0]); HttpURLConnection hu = (HttpURLConnection) ur.openConnection(); if(hu.getResponseCode()==200){ InputStream inputStream = hu.getInputStream(); BufferedReader b = new BufferedReader(new InputStreamReader(inputStream)); StringBuilder sb = new StringBuilder(); String st = ""; while((st=b.readLine())!=null){ sb.append(st); } String to = sb.toString(); return to; } } catch (Exception e) { e.printStackTrace(); } return null; } } class MyAdp extends BaseAdapter{ @Override public int getItemViewType(int position) { Bean.ResultsBean resultsBea = arr.get(position); if(resultsBea.getImages()==null){ return 1; } return 2; } @Override public int getViewTypeCount() { return 10; } @Override public int getCount() { return arr.size(); } @Override public Object getItem(int i) { return arr.get(i); } @Override public long getItemId(int i) { return i; } @Override public View getView(int i, View view, ViewGroup viewGroup) { int itemViewType = getItemViewType(i); Bean.ResultsBean result = arr.get(i); switch(itemViewType){ case 1: Adpt2 ad2; if(view==null){ view = View.inflate(getActivity(),R.layout.listview_shitu2,null); ad2 = new Adpt2(); ad2.tv2 = view.findViewById(R.id.tv2); view.setTag(ad2); }else{ ad2 = (Adpt2) view.getTag(); } ad2.tv2.setText(result.getCreatedAt()); break; case 2: Adpt ad; if(view==null){ view = View.inflate(getActivity(),R.layout.listview_item,null); ad = new Adpt(); ad.img = view.findViewById(R.id.imag); ad.tv = view.findViewById(R.id.tex); view.setTag(ad); }else{ ad = (Adpt) view.getTag(); } ImageLoader.getInstance().displayImage(result.getImages().get(0),ad.img); ad.tv.setText(result.getCreatedAt()); break; } return view; } class Adpt{ ImageView img; TextView tv; } class Adpt2{ TextView tv2; } } }