public class MyFragment extends Fragment{ private String urldd="http://gank.io/api/data/"; String nnn; private View view; private PullToRefreshListView pull; private MyAdapter ada; private List<Bean.ResultsBean> results; private int i; private ArrayList<Bean.ResultsBean> list = new ArrayList<>(); @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { Bundle bundle = getArguments(); nnn = bundle.getString("nnn"); view =inflater.inflate(R.layout.fragment,container,false); // TextView textView = new TextView(getActivity()); // textView.setText(nnn); return view; } //定义静态的方法 public static MyFragment getData(String string){ MyFragment myFragment = new MyFragment(); Bundle bundle = new Bundle(); myFragment.setArguments(bundle); bundle.putString("nnn",string); return myFragment; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); pull =(PullToRefreshListView) view.findViewById(R.id.pull); pull.setMode(PullToRefreshBase.Mode.BOTH); try { String encode = URLEncoder.encode(nnn, "utf-8"); Log.e("AAAAAAA",encode); new MyAsyncTask().execute(urldd+encode+"/10/1"); Log.e("======",urldd+encode+"/10/1"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } initpull(); } class MyAsyncTask extends AsyncTask<String,Void,String>{ @Override protected void onPostExecute(String s) { super.onPostExecute(s); Gson gson = new Gson(); Bean bean = gson.fromJson(s, Bean.class); results = bean.getResults(); list.addAll(results); ada =new MyAdapter(); pull.setAdapter(ada); pull.onRefreshComplete(); } @Override protected String doInBackground(String... strings) { try { URL url = new URL(strings[0]); HttpURLConnection ucon = (HttpURLConnection) url.openConnection(); int code = ucon.getResponseCode(); if (code==200){ InputStream inputStream = ucon.getInputStream(); BufferedReader bf = new BufferedReader(new InputStreamReader(inputStream)); StringBuilder bu = new StringBuilder(); String string=""; while((string=bf.readLine())!=null){ bu.append(string); } return bu.toString(); } } catch (Exception e) { e.printStackTrace(); } return null; } } class MyAdapter extends BaseAdapter{ @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) { ViewHolder vh=null; if (view==null){ view=View.inflate(getActivity(),R.layout.list_iteam,null); vh=new ViewHolder(); vh.title =(TextView) view.findViewById(R.id.title); vh.img=(ImageView)view.findViewById(R.id.img); view.setTag(vh); }else{ vh= (ViewHolder) view.getTag(); } vh.title.setText(list.get(i).getDesc()); ImageLoader.getInstance().displayImage(list.get(i).getUrl(),vh.img); return view; } } class ViewHolder{ public ImageView img; public TextView title; } private void initpull() {
//下拉刷新 pull.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() { @Override public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) { list.clear(); i=1; try { String encode = URLEncoder.encode(nnn, "utf-8"); new MyAsyncTask().execute(urldd+encode+"/10/1"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } @Override
//上拉加载 public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) { i++; try { String encode = URLEncoder.encode(nnn, "utf-8"); new MyAsyncTask().execute(urldd+encode+"/10/"+i); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } }); } }