今日头条2

来源:互联网 发布:免费阿里云主机 编辑:程序博客网 时间:2024/06/02 23:41

Bean类

package com.bw.bean;


import java.util.List;
public class SuperBean {
    private boolean error;
    private List<ResultsBean> results;


    public boolean isError() {
        return error;
    }


    public void setError(boolean error) {
        this.error = error;
    }


    public List<ResultsBean> getResults() {
        return results;
    }


    public void setResults(List<ResultsBean> results) {
        this.results = results;
    }


    public static class ResultsBean {
        private String _id;
        private String createdAt;
        private String desc;
        private String publishedAt;
        private String source;
        private String type;
        private String url;
        private boolean used;
        private String who;
        private List<String> images;


        public String get_id() {
            return _id;
        }


        public void set_id(String _id) {
            this._id = _id;
        }


        public String getCreatedAt() {
            return createdAt;
        }


        public void setCreatedAt(String createdAt) {
            this.createdAt = createdAt;
        }


        public String getDesc() {
            return desc;
        }


        public void setDesc(String desc) {
            this.desc = desc;
        }


        public String getPublishedAt() {
            return publishedAt;
        }


        public void setPublishedAt(String publishedAt) {
            this.publishedAt = publishedAt;
        }


        public String getSource() {
            return source;
        }


        public void setSource(String source) {
            this.source = source;
        }


        public String getType() {
            return type;
        }


        public void setType(String type) {
            this.type = type;
        }


        public String getUrl() {
            return url;
        }


        public void setUrl(String url) {
            this.url = url;
        }


        public boolean isUsed() {
            return used;
        }


        public void setUsed(boolean used) {
            this.used = used;
        }


        public String getWho() {
            return who;
        }


        public void setWho(String who) {
            this.who = who;
        }


        public List<String> getImages() {
            return images;
        }


        public void setImages(List<String> images) {
            this.images = images;
        }
    }
}


MainActivity类

import android.os.Bundle;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;


import com.bw.myFragment.MyFragment;


import java.util.ArrayList;
import java.util.List;


public class MainActivity extends AppCompatActivity {
    //声明变量
    private String[] titlelist = {"福利", "Android", "iSO", "休息视频", "拓展资源", "前端", "all"};
    private TabLayout tabLayout;
    private ViewPager viewPager;
    private List<MyFragment> mViewList = new ArrayList<>();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initData();
        initView();


    }


    private void initView() {
        //初始化组件
        tabLayout = (TabLayout) findViewById(R.id.tablayout);
        viewPager = (ViewPager) findViewById(R.id.view_pager);
        for (int i = 0; i < titlelist.length; i++) {
            MyFragment fragment = new MyFragment();
            Bundle b = new Bundle();
            b.putString("url", "http://gank.io/api/data/"+titlelist[i]+"/10/1");
            fragment.setArguments(b);
            //收集fragment
            mViewList.add(fragment);
            //给tablayout添加tab选项卡
            tabLayout.addTab(tabLayout.newTab().setText(titlelist[i]));
        }
        FragmentManager fm = getSupportFragmentManager();
        MyFragmentPagerAdapter adapter = new MyFragmentPagerAdapter(fm, mViewList);
        viewPager.setAdapter(adapter);//给ViewPager设置适配器
        tabLayout.setupWithViewPager(viewPager);//将TabLayout和ViewPager关联起来。
        tabLayout.setTabsFromPagerAdapter(adapter);//给Tabs设置适配器


    }


    private void initData() {




    }
    class MyFragmentPagerAdapter extends FragmentPagerAdapter {
        private List<MyFragment> mViewList;


        public MyFragmentPagerAdapter(FragmentManager fm, List<MyFragment> mViewList) {
            super(fm);
            this.mViewList = mViewList;
        }


        @Override
        public Fragment getItem(int position) {
            return mViewList.get(position);
        }


        @Override
        public int getCount() {
            return mViewList.size();
        }


        @Override
        public CharSequence getPageTitle(int position) {


            return titlelist[position];//页卡标题
        }


    }
}



NetWorks类

package com.bw.utils;


import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;


public class NetWorks {
    public String getjsonstr(String urlstr) {
        URL url = null;
        HttpURLConnection httpURLConnection = null;
        String jsonStr = "";
        try {
            url = new URL(urlstr);//创建URL对象,连接JSON_URL对应的服务器
            httpURLConnection = (HttpURLConnection) url.openConnection();//打开连接
            httpURLConnection.setConnectTimeout(5000);//设置请求时长为5秒
            httpURLConnection.setReadTimeout(5000);//设置读取服务器响应数据的时长
            int resCode = httpURLConnection.getResponseCode();//得到响应结果码
            if (resCode == 200) {//表示响应成功,可以获得相应的额结果
                //得到响应的结果,,服务器响应的输入流
                InputStream inputStream = httpURLConnection.getInputStream();
                byte[] buffers = new byte[1024];
                int length = 0;


                while ((length = inputStream.read(buffers)) != -1) {//本次循环成立,说明读取到了数据
                    jsonStr += new String(buffers, 0, length);
                }


            }
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return jsonStr;
    }


}



MyFragment类

package com.bw.myFragment;


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.ListView;


import com.bw.bean.SuperBean;
import com.bw.myadapters.MyBaseAdapter;
import com.bw.utils.NetWorks;
import com.bw.yanshaohua20170918.R;
import com.google.gson.Gson;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;


import java.util.List;


/**
 * Created by 我走路带风 on 2017/9/18.
 */


public class MyFragment extends Fragment{
    private String url;
    private PullToRefreshListView lv;
    private List<SuperBean.ResultsBean> results;
    private int page = 1;
    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //获取到url
        Bundle arguments = getArguments();
        url = arguments.getString("url");
    }


    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable final ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = View.inflate(getActivity(),R.layout.fragment_item,null);
        lv = (PullToRefreshListView) view.findViewById(R.id.lv);
        //创建异步
        new AsyncTask<String,Integer,String>(){


            @Override
            protected String doInBackground(String... params) {
                NetWorks netWorks = new NetWorks();
                String jsonstr = netWorks.getjsonstr(url);
                return jsonstr;
            }


            @Override
            protected void onPostExecute(String s) {
                super.onPostExecute(s);
                SuperBean superBean = new Gson().fromJson(s, SuperBean.class);
                results = superBean.getResults();
                MyBaseAdapter adapter = new MyBaseAdapter(results,getActivity());
                lv.setAdapter(adapter);
                lv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener<ListView>() {
                    @Override
                    public void onRefresh(PullToRefreshBase<ListView> refreshView) {
                        fresh();
                    }
                });
                lv.setOnLastItemVisibleListener(new PullToRefreshBase.OnLastItemVisibleListener() {
                    @Override
                    public void onLastItemVisible() {
                        loadMore();
                    }
                });
            }
        }.execute();
        return view;
    }


    private void loadMore() {
        page++;
        //创建异步
        new AsyncTask<String,Integer,String>(){


            @Override
            protected String doInBackground(String... params) {
                NetWorks netWorks = new NetWorks();
                String jsonstr = netWorks.getjsonstr(url);
                return jsonstr;
            }


            @Override
            protected void onPostExecute(String s) {
                super.onPostExecute(s);
                SuperBean superBean = new Gson().fromJson(s, SuperBean.class);
                results = superBean.getResults();
                MyBaseAdapter adapter = new MyBaseAdapter(results,getActivity());
                lv.setAdapter(adapter);
                lv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener<ListView>() {
                    @Override
                    public void onRefresh(PullToRefreshBase<ListView> refreshView) {
                        fresh();
                    }
                });
                lv.setOnLastItemVisibleListener(new PullToRefreshBase.OnLastItemVisibleListener() {
                    @Override
                    public void onLastItemVisible() {
                        loadMore();
                    }
                });
            }
        }.execute();
    }


    private void fresh() {
        //创建异步
        new AsyncTask<String,Integer,String>(){


            @Override
            protected String doInBackground(String... params) {
                NetWorks netWorks = new NetWorks();
                String jsonstr = netWorks.getjsonstr(url);
                return jsonstr;
            }


            @Override
            protected void onPostExecute(String s) {
                super.onPostExecute(s);
                SuperBean superBean = new Gson().fromJson(s, SuperBean.class);
                results = superBean.getResults();
                MyBaseAdapter adapter = new MyBaseAdapter(results,getActivity());
                lv.setAdapter(adapter);
                lv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener<ListView>() {
                    @Override
                    public void onRefresh(PullToRefreshBase<ListView> refreshView) {
                        fresh();
                    }
                });
                lv.setOnLastItemVisibleListener(new PullToRefreshBase.OnLastItemVisibleListener() {
                    @Override
                    public void onLastItemVisible() {
                        loadMore();
                    }
                });
            }
        }.execute();
    }
}



BaseApplication类

package com.bw.myApplication;


import android.app.Application;
import android.graphics.Bitmap;


import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;





public class BaseApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        //初始化ImageLoader配置
        ImageLoaderConfiguration configuration =ImageLoaderConfiguration.createDefault(this);
        //应用
        ImageLoader.getInstance().init(configuration);
    }


    public DisplayImageOptions getOptions(){
        //初始化图片配置
        DisplayImageOptions options = new DisplayImageOptions.Builder().bitmapConfig(Bitmap.Config.RGB_565).build();
        //返回配置
        return options;
    }


}


MyBaseAdapter类

package com.bw.myadapters;


import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;


import com.bw.bean.SuperBean;
import com.bw.yanshaohua20170918.R;


import java.util.List;


/**
 * Created by 我走路带风 on 2017/9/18.
 */


public class MyBaseAdapter extends BaseAdapter {
    private List<SuperBean.ResultsBean> results;
    private Context context;


    public MyBaseAdapter(List<SuperBean.ResultsBean> results, Context context) {
        this.results = results;
        this.context = context;
    }


    @Override
        public int getCount() {
            return results.size();
        }


        @Override
        public Object getItem(int position) {
            return results.get(position);
        }


        @Override
        public long getItemId(int position) {
            return position;
        }


        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            convertView = View.inflate(context,R.layout.list_item,null);
            TextView tv = (TextView) convertView.findViewById(R.id.tv);
            tv.setText(results.get(position).getDesc());
            return convertView;
        }
}


/**


**/