tablayout的主页面应用

来源:互联网 发布:simulink输入数据 编辑:程序博客网 时间:2024/05/23 22:31

添加依赖

compile 'com.android.support:design:24.2.1'compile 'com.jwenfeng.pulltorefresh:library:1.0.3'
首先导入图片

public class Img extends Application{    @Override    public void onCreate() {        DisplayImageOptions options = new DisplayImageOptions.Builder().showImageOnLoading(R.mipmap.ic_arrow_down).displayer(new FadeInBitmapDisplayer(2000)).cacheInMemory(true).cacheOnDisc(true).build();        ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(this).defaultDisplayImageOptions(options).threadPoolSize(5).build();        ImageLoader.getInstance().init(configuration);        super.onCreate();    }}

导入RootBean包  进行解析

ublic class RootBean {    /**     * code : 200     * msg : success     * newslist : [{"ctime":"2017-06-06 15:26","title":"摩拜接入苹果支付服务 iPhone相机可直接扫码解","description":"移动互联","picUrl":"http://cms-bucket.nosdn.127.net/51d882e6322f4250abcd1b920e870e0f20170606152639.png","url":"http://tech.163.com/17/0606/15/CM8P59DV00097U7R.html"},{"ctime":"2017-06-06 14:50","title":"未按时缴纳物业费 乐视视频员工或被禁止进入大","description":"移动互联","picUrl":"http://cms-bucket.nosdn.127.net/b18b0a61791a4dd98c173b1a59546a7120170606144951.png","url":"http://tech.163.com/17/0606/14/CM8N2S8L00097U7R.html"},{"ctime":"2017-06-06 13:05","title":"特斯拉每卖一辆亏1.3万美元 卖得越多亏得越多","description":"移动互联","picUrl":"http://cms-bucket.nosdn.127.net/0c40a2ad95d94fb9a06c2bf795adf72320170606103032.png","url":"http://tech.163.com/17/0606/13/CM8H2GVP00097U7R.html"},{"ctime":"2017-06-06 13:15","title":"哈佛撤销10名新生录取资格:在网上发布极端言论","description":"移动互联","picUrl":"http://cms-bucket.nosdn.127.net/69a29ab38ba14449889552363992767d20170606110755.png","url":"http://tech.163.com/17/0606/13/CM8HKO7L00097U7R.html"},{"ctime":"2017-06-06 13:18","title":"用环保快递包裹一天可少砍十万棵树,为何推广难","description":"移动互联","picUrl":"http://cms-bucket.nosdn.127.net/84fc17a3f8ac4fcf88fa9e7792e2e33420170606113715.jpeg","url":"http://tech.163.com/17/0606/13/CM8HR7UD00097U7R.html"},{"ctime":"2017-06-06 13:29","title":"Google砍了好多业务,CFO讲述决策制定过程","description":"移动互联","picUrl":"http://cms-bucket.nosdn.127.net/f224332db5384b6d9757762cfa3b132a20170606131831.png","url":"http://tech.163.com/17/0606/13/CM8IDNON00097U7R.html"},{"ctime":"2017-06-06 13:41","title":"Snap1.25亿美元收购基于LBS广告分析的创业公司","description":"移动互联","picUrl":"http://cms-bucket.nosdn.127.net/61bb5ccb12a445fcb492496856ec309020170606134043.png","url":"http://tech.163.com/17/0606/13/CM8J3NG500097U7R.html"},{"ctime":"2017-06-06 11:05","title":"中国互金协会信披平台上线 首批10家试点单位接","description":"移动互联","picUrl":"http://cms-bucket.nosdn.127.net/e9a678aee27840709ec30fe70fbda2e020170606091935.jpeg","url":"http://tech.163.com/17/0606/11/CM8A6EMR00097U7R.html"},{"ctime":"2017-06-06 11:08","title":"B站年轻人:玩鬼畜或圈地自萌,正打破\u201c次元壁","description":"移动互联","picUrl":"http://cms-bucket.nosdn.127.net/0c40a2ad95d94fb9a06c2bf795adf72320170606103032.png","url":"http://tech.163.com/17/0606/11/CM8AD2BS00097U7R.html"},{"ctime":"2017-06-06 11:22","title":"百度搜索\u201c找人\u201d为何搜到行骗公司?","description":"移动互联","picUrl":"http://cms-bucket.nosdn.127.net/69a29ab38ba14449889552363992767d20170606110755.png","url":"http://tech.163.com/17/0606/11/CM8B5U7A00097U7R.html"}]     */    private int code;    private String msg;    private List<NewslistBean> newslist;    public int getCode() {        return code;    }    public void setCode(int code) {        this.code = code;    }    public String getMsg() {        return msg;    }    public void setMsg(String msg) {        this.msg = msg;    }    public List<NewslistBean> getNewslist() {        return newslist;    }    public void setNewslist(List<NewslistBean> newslist) {        this.newslist = newslist;    }    public static class NewslistBean {        /**         * ctime : 2017-06-06 15:26         * title : 摩拜接入苹果支付服务 iPhone相机可直接扫码解         * description : 移动互联         * picUrl : http://cms-bucket.nosdn.127.net/51d882e6322f4250abcd1b920e870e0f20170606152639.png         * url : http://tech.163.com/17/0606/15/CM8P59DV00097U7R.html         */        private String ctime;        private String title;        private String description;        private String picUrl;        private String url;        public String getCtime() {            return ctime;        }        public void setCtime(String ctime) {            this.ctime = ctime;        }        public String getTitle() {            return title;        }        public void setTitle(String title) {            this.title = title;        }        public String getDescription() {            return description;        }        public void setDescription(String description) {            this.description = description;        }        public String getPicUrl() {            return picUrl;        }        public void setPicUrl(String picUrl) {            this.picUrl = picUrl;        }        public String getUrl() {            return url;        }        public void setUrl(String url) {            this.url = url;        }    }}

主要实现的页面 和fragment进行刷新  以及网络请求

public class Fragments extends Fragment {    //全局变量    List<RootBean.NewslistBean> list;    MyAdapter myAdapter;    private Handler handler = new Handler() {        @Override        public void handleMessage(Message msg) {            if (msg.what == 0) {                RootBean bean = (RootBean) msg.obj;                list = bean.getNewslist();                myAdapter = new MyAdapter();                list_view.setAdapter(myAdapter);            }        }    };    PullToRefreshLayout pull_1;    private int shu = 10;    String s;    private String path;    ListView list_view;    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        //初始化视图        View v = View.inflate(getActivity(), R.layout.fragment, null);        //初始化控件        pull_1 = v.findViewById(R.id.pull_1);        list_view = v.findViewById(R.id.list_view);        //获取数据        Bundle bundle = getArguments();        s = bundle.getString("name", "social");        streamToString(s);        //PullToRefresh的监听事件        pull_1.setRefreshListener(new BaseRefreshListener() {            //下拉刷新            @Override            public void refresh() {                handler.postDelayed(new Runnable() {                    @Override                    public void run() {                        shu++;                        path = "http://api.tianapi.com/" + s + "/?key=51f42ae57be18f5f5d7b402ef0bc64aa&num=" + shu;                        Log.i("aaaaaaaaa", path);                        streamToString(s);                        //刷新适配器                        //myAdapter.notifyDataSetChanged();                        pull_1.finishRefresh();                    }                }, 3000);            }            //上拉加载            @Override            public void loadMore() {                handler.postDelayed(new Runnable() {                    @Override                    public void run() {                        shu++;                        path = "http://api.tianapi.com/" + s + "/?key=51f42ae57be18f5f5d7b402ef0bc64aa&num=" + shu;                        streamToString(s);                        //刷新适配器                        //myAdapter.notifyDataSetChanged();                        pull_1.finishLoadMore();                    }                }, 3000);            }        });        return v;    }    //适配器    class MyAdapter extends BaseAdapter {        @Override        public int getCount() {            return list.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) {            ViewHolder holder;            if (view == null) {                view = view.inflate(getActivity(), R.layout.item, null);                holder = new ViewHolder();                holder.image_view = view.findViewById(R.id.image_view);                holder.text_view = view.findViewById(R.id.text_view);                view.setTag(holder);            } else {                holder = (ViewHolder) view.getTag();            }            //获取文字            holder.text_view.setText(list.get(i).getTitle());            //获取图片            ImageLoader.getInstance().displayImage(list.get(i).getPicUrl(), holder.image_view);            return view;        }        class ViewHolder {            ImageView image_view;            TextView text_view;        }    }    //网络请求    private void streamToString(final String s) {        new Thread() {            @Override            public void run() {                //判断                if (path == null) {                    path = "http://api.tianapi.com/" + s + "/?key=51f42ae57be18f5f5d7b402ef0bc64aa&num=" + shu;                }                try {                    //获取接口                    URL url = new URL(path);                    HttpURLConnection connection = (HttpURLConnection) url.openConnection();                    //设置                    connection.setRequestMethod("GET");                    connection.setReadTimeout(5000);                    connection.setConnectTimeout(5000);                    //判断请求码                    if (connection.getResponseCode() == 200) {                        InputStream stream = connection.getInputStream();                        String json = zhuan(stream, "utf-8");                        //解析                        Gson gson = new Gson();                        RootBean fromJson = gson.fromJson(json, RootBean.class);                        //发送一个消息                        Message message = Message.obtain();                        message.what = 0;                        message.obj = fromJson;                        handler.sendMessage(message);                    }                } catch (Exception e) {                    e.printStackTrace();                }                super.run();            }        }.start();    }    //转码    private String zhuan(InputStream stream, String s) {        try {            InputStreamReader inputStreamReader = new InputStreamReader(stream, s);            BufferedReader reader = new BufferedReader(inputStreamReader);            String ss = null;            StringBuilder builder = new StringBuilder();            while ((ss = reader.readLine()) != null) {                builder.append(ss);            }            inputStreamReader.close();            return builder.toString();        } catch (Exception e) {            e.printStackTrace();        }        return null;    }}
要进行展示的tablayout的页面和viewpager绑定(资讯)

public class Zixun extends Fragment {    //全局变量    TabLayout tab;    private List<String> list;    ViewPager vp;    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        //初始化视图        View v = View.inflate(getActivity(), R.layout.zixun, null);        //初始化控件        tab = v.findViewById(R.id.tab);        vp = v.findViewById(R.id.vp);        //创建集合        list = new ArrayList<>();        //向集合中添加数据        list.add("数据新闻");        list.add("快讯");        list.add("头条");        list.add("精编公告");        list.add("美股");        list.add("港股");        list.add("基金");        list.add("理财");        //ViewPager的监听事件        vp.setAdapter(new FragmentPagerAdapter(getActivity().getSupportFragmentManager()) {            @Override            public CharSequence getPageTitle(int position) {                return list.get(position);            }            @Override            public Fragment getItem(int position) {                //获取数据                Fragments fragments = new Fragments();                Bundle bundle = new Bundle();                //判断                if (list.get(position).endsWith("数据新闻")) {                    bundle.putString("name", "social");                } else if (list.get(position).endsWith("快讯")) {                    bundle.putString("name", "apple");                } else if (list.get(position).endsWith("头条")) {                    bundle.putString("name", "world");                } else if (list.get(position).endsWith("精编公告")) {                    bundle.putString("name", "huabian");                } else if (list.get(position).endsWith("美股")) {                    bundle.putString("name", "tiyu");                } else if (list.get(position).endsWith("港股")) {                    bundle.putString("name", "vr");                } else if (list.get(position).endsWith("基金")) {                    bundle.putString("name", "football");                } else if (list.get(position).endsWith("理财")) {                    bundle.putString("name", "keji");                }                //传递数据                fragments.setArguments(bundle);                return fragments;            }            @Override            public int getCount() {                return list.size();            }        });        //绑定        tab.setupWithViewPager(vp);        //返回视图        return v;    }}
其余几个fragment的页面

public class Hangqing extends Fragment{    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {      View view = View.inflate(getActivity(), R.layout.hannqing,null);        return view;    }}
首页

public class Shouye extends Fragment {    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {       View view= View.inflate(getActivity(), R.layout.shouye,null);        return view;    }}
自选

public class Zixuan extends Fragment {    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {     View view  = View.inflate(getActivity(), R.layout.zixuan,null);        return view;    }}
主页面main

public class MainActivity extends AppCompatActivity {    //全局变量    Button btn_shouye;    Button btn_zixuan;    Button btn_hangqing;    Button btn_zixun;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //初始化控件        btn_shouye = (Button) findViewById(R.id.btn_shouye);        btn_zixuan = (Button) findViewById(R.id.btn_zixuan);        btn_hangqing = (Button) findViewById(R.id.btn_hangqing);        btn_zixun = (Button) findViewById(R.id.btn_zixun);        //初始化界面        FragmentManager manager = getSupportFragmentManager();        FragmentTransaction transaction = manager.beginTransaction();        transaction.replace(R.id.frag, new Shouye());        transaction.commit();        //按钮的点击事件        btn_shouye.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                //首页                FragmentManager manager = getSupportFragmentManager();                FragmentTransaction transaction = manager.beginTransaction();                transaction.replace(R.id.frag, new Shouye());                transaction.commit();            }        });        //按钮的点击事件        btn_zixuan.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                //自选页                FragmentManager manager = getSupportFragmentManager();                FragmentTransaction transaction = manager.beginTransaction();                transaction.replace(R.id.frag, new Zixuan());                transaction.commit();            }        });        //按钮的点击事件        btn_hangqing.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                //行情页                FragmentManager manager = getSupportFragmentManager();                FragmentTransaction transaction = manager.beginTransaction();                transaction.replace(R.id.frag, new Hangqing());                transaction.commit();            }        });        //按钮的点击事件        btn_zixun.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                //资讯页                FragmentManager manager = getSupportFragmentManager();                FragmentTransaction transaction = manager.beginTransaction();                transaction.replace(R.id.frag, new Zixun());                transaction.commit();            }        });    }}
//记得添加网络的权限和图片的权限

<uses-permission android:name="android.permission.INTERNET"></uses-permission>
android:name="Img"




原创粉丝点击