配置网络权限

public class Netutil {
    private static Netutil instance;
    public Netutil(){}

    public  static Netutil getInstance(){
         if (instance==null){
             instance=new Netutil();
         }
        return instance;
    }
    //创建接口
    public static interface CallBack<T>{
        void onSuccess(T t);
    }
    //网络封装
    public static String RequestData(String str){
        String result=\"\";
        try {
            URL url =new URL(str);
            HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
            urlConnection.setRequestMethod(\"GET\");
            urlConnection.setConnectTimeout(5000);
            urlConnection.setReadTimeout(5000);
            int responseCode = urlConnection.getResponseCode();
            if (responseCode==200){
                result=stream2String(urlConnection.getInputStream());
            }
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return result;
    }
//字节流
    private static String stream2String(InputStream inputStream) throws IOException{
        StringBuilder stringBuilder = new StringBuilder();
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
        for (String tmp=bufferedReader.readLine();tmp!=null;tmp=bufferedReader.readLine()){
            stringBuilder.append(tmp);
        }
        return stringBuilder.toString();
//        return bufferedReader.toString();
    }
    //网络解析
    public static <T> T RequestData(String str,Class clazz){
       T t=(T) new Gson().fromJson(RequestData(str),clazz);
        return t;
    }
   //异步请求
    public static void RequestData(final String str, final Class clazz, final CallBack callBack){
        new AsyncTask<String, Void,  >() {
            @Override
            protected   doInBackground(String... strings) {
                return RequestData(str,clazz);
            }

            @Override
            protected void onPostExecute(  o) {
               callBack.onSuccess(o);
            }
        }.execute(str);
    }

接口回调+上拉下拉

 @Override
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        //寻找资源ID
        ptr = view.findViewById(R.id.ptr);
        //设置适配器
        newsAdapter = new NewsAdapter(getContext());
        //引用适配器
        ptr.setAdapter(newsAdapter);
        //设置上拉下拉
        ptr.setMode(PullToRefreshListView.Mode.BOTH);
        ptr.setOnRefreshListener(new PullToRefresh .OnRefreshListener2<ListView>() {
            @Override
            public void onPullDownToRefresh(PullToRefresh <ListView> refreshView) {
                 initdata();
            }

            @Override
            public void onPullUpToRefresh(PullToRefresh <ListView> refreshView) {
                 initdata();
            }
        });
        initdata();
        pagerd++;
    }
    //网络接口
    private String apiurl=\"http://www.xieast.com/api/news/news.php?\";
    private void initdata() {

        Netutil.getInstance().RequestData(apiurl + pagerd, NewsBean.class, new Netutil.CallBack<NewsBean>() {
            @Override
            public void onSuccess(NewsBean newsBean) {
                if (pagerd==1){
                    newsAdapter.setList(newsBean.getData());
                }else {
                    newsAdapter.addList(newsBean.getData());
                }
                pagerd++;
                ptr.onRefreshComplete();
            }
        });
    }
收藏 打印