fragment
来源:互联网 发布:人生有涯而知无涯 编辑:程序博客网 时间:2024/06/06 19:22
ChildFragment:::::::
package com.bwie.zhoukao2demo.fragment;import android.content.Context;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.BaseAdapter;import android.widget.ImageView;import android.widget.ListView;import com.bwie.zhoukao2demo.NetWordUtils;import com.bwie.zhoukao2demo.Product;import com.bwie.zhoukao2demo.R;import com.google.gson.Gson;import com.handmark.pulltorefresh.library.PullToRefreshBase;import com.handmark.pulltorefresh.library.PullToRefreshListView;import com.youth.banner.Banner;import com.youth.banner.loader.ImageLoader;import java.util.ArrayList;import java.util.Arrays;import java.util.List;/** * author:Created by WangZhiQiang on 2017-10-19. * pullToRefresh 联网 ,解析, 上下拉 */public class ChildFragment extends Fragment { int page = 1;//请求接口的第几页; String baseUrl = "http://gank.io/api/data/Android/10/"; private PullToRefreshListView plv; //定义一个总的集合, 以后上拉加载的时候,往这个集合里追加数据,更新适配器; List<Product.ResultsBean> list = new ArrayList<>(); private MAdapter mAdapter; private ListView lv; private Banner banner; String[] imagUrls = {"http://img.my.csdn.net/uploads/201407/26/1406383299_1976.jpg", "http://img.my.csdn.net/uploads/201407/26/1406383299_1976.jpg", "http://img.my.csdn.net/uploads/201407/26/1406383299_1976.jpg", "http://img.my.csdn.net/uploads/201407/26/1406383299_1976.jpg", "http://img.my.csdn.net/uploads/201407/26/1406383299_1976.jpg"}; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_b, null); //这个view是头部 View header_banner = inflater.inflate(R.layout.header_banner, null); banner = (Banner) header_banner.findViewById(R.id.banner); plv = (PullToRefreshListView) view.findViewById(R.id.plv); //得到plv封装的listview,方便我们添加头部 lv = plv.getRefreshableView(); lv.addHeaderView(header_banner); return view; } @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); getNetData(page);//获取list集合的方法; getNetBannerData(); mAdapter = new MAdapter();//主线程继续往下走,和刚才开启的线程互不影响;0.0001 lv.setAdapter(mAdapter); plv.setMode(PullToRefreshBase.Mode.BOTH);//上下拉都支持 plv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() { @Override public void onPullDownToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) { list.clear(); new MAsync().execute(baseUrl + 1); } @Override public void onPullUpToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) { page++; getNetData(page); } }); } private void getNetData(int page) { new MAsync().execute(baseUrl + page); } private class MAdapter 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; } /** * 多条目 * * @param i * @param view * @param viewGroup * @return */ @Override public View getView(int i, View view, ViewGroup viewGroup) { view = View.inflate(getActivity(), R.layout.item01, null); return view; } } class MAsync extends AsyncTask<String, Void, String> { @Override protected String doInBackground(String... strings) { return NetWordUtils.getNetjson(strings[0]); } @Override protected void onPostExecute(String s) { super.onPostExecute(s); Gson gson = new Gson(); Product product = gson.fromJson(s, Product.class); List<Product.ResultsBean> results = product.getResults(); list.addAll(results); mAdapter.notifyDataSetChanged(); plv.onRefreshComplete(); } } private void getNetBannerData() { banner.setImages(Arrays.asList(imagUrls));//设置图片集合 banner.setImageLoader(new BannerLoader()); banner.start(); } /** * 加载轮播图的类;--Banner的 */ class BannerLoader extends ImageLoader { //要实现具体如哪个功能或框架来加载图片 @Override public void displayImage(Context context, Object path, ImageView imageView) { com.nostra13.universalimageloader.core.ImageLoader instance = com.nostra13.universalimageloader.core.ImageLoader.getInstance(); instance.displayImage((String) path, imageView); } }}
MainFragment:::::::
package com.bwie.zhoukao2demo.fragment;import android.os.Bundle;import android.support.annotation.Nullable;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.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import com.bwie.zhoukao2demo.R;import java.util.ArrayList;/** * author:Created by WangZhiQiang on 2017-10-19. * 1--Tablayout * *viewpager里三个子fragment(一个里面有数据) */public class MainFragment extends Fragment { private TabLayout tabLayout; private ViewPager viewpager; ArrayList fragmentList = new ArrayList<Fragment>(); String[] temp = {"你的 ","我的","他的"}; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_a, null); tabLayout = (TabLayout) view.findViewById(R.id.tl_titles); viewpager = (ViewPager) view.findViewById(R.id.viewpager); return view; } @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); // fragment中嵌套fragment, Manager需要用(getChildFragmentManager()) MPagerAdapter mPagerAdapter = new MPagerAdapter(getChildFragmentManager()); initFragment(); tabLayout.setTabMode(TabLayout.MODE_FIXED); tabLayout.setupWithViewPager(viewpager); viewpager.setAdapter(mPagerAdapter); } private void initFragment() { for (int i = 0; i < 3; i++) { fragmentList.add(new ChildFragment()); } } class MPagerAdapter extends FragmentPagerAdapter { public MPagerAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { return (Fragment) fragmentList.get(position); } @Override public int getCount() { return fragmentList.size(); } @Override public Object instantiateItem(ViewGroup container, int position) { return super.instantiateItem(container, position); } //返回tablayout的标题文字; @Override public CharSequence getPageTitle(int position) { return temp[position]; } }}
Product::::::
package com.bwie.zhoukao2demo;import java.util.List;/** * author:Created by WangZhiQiang on 2017-10-20. */public class Product { /** * error : false * results : [{"_id":"59de2f22421aa90fe50c015c","createdAt":"2017-10-11T22:48:02.721Z","desc":"用 Kotlin 实现的基于物理的动画","images":["http://img.gank.io/58925abb-3e11-4d6e-9e44-a4567c03d03f"],"publishedAt":"2017-10-17T13:10:43.731Z","source":"web","type":"Android","url":"https://github.com/sagar-viradiya/AndroidPhysicsAnimation","used":true,"who":" Thunder Bouble"},{"_id":"59e46c6a421aa90fe50c0174","createdAt":"2017-10-16T16:23:06.637Z","desc":"Android 通用圆角布局,快速实现圆角需求。","images":["http://img.gank.io/4d9b99ba-cc97-4ef8-b834-477ad8a97100"],"publishedAt":"2017-10-17T13:10:43.731Z","source":"web","type":"Android","url":"https://github.com/GcsSloop/rclayout","used":true,"who":"sloop"},{"_id":"59e46c89421aa90fe7253598","createdAt":"2017-10-16T16:23:37.313Z","desc":"Android 加密工具包。","publishedAt":"2017-10-17T13:10:43.731Z","source":"web","type":"Android","url":"https://github.com/GcsSloop/encrypt","used":true,"who":"sloop"},{"_id":"59e55ecd421aa90fe725359c","createdAt":"2017-10-17T09:37:17.526Z","desc":"一个用 Kotlin 写的轻量级 URL 路由器框架","publishedAt":"2017-10-17T13:10:43.731Z","source":"web","type":"Android","url":"https://github.com/twocity/linker","used":true,"who":"ZhangTitanjum"},{"_id":"59e5740f421aa90fe725359f","createdAt":"2017-10-17T11:07:59.933Z","desc":"Android面试指南:我们需要怎样的工程师,我们需要成为怎样的工程师?","publishedAt":"2017-10-17T13:10:43.731Z","source":"web","type":"Android","url":"https://mp.weixin.qq.com/s?__biz=MzU4MjAzNTAwMA==&mid=2247483781&idx=2&sn=c5ef46cea309df058d2b168fada6dec0&chksm=fdbf32d2cac8bbc4b7f373c76bfc4d2447717634fdbc5afae565cca92551bfd152b329d5e103#rd","used":true,"who":null},{"_id":"59df3eac421aa90fef20347c","createdAt":"2017-10-12T18:06:36.692Z","desc":"文章中详实说明利用Cmake构造Ndk库需要注意的问题,以及部分Cmake命令的解读。","publishedAt":"2017-10-16T12:19:20.311Z","source":"web","type":"Android","url":"http://blog.csdn.net/qq_34902522/article/details/78144127","used":true,"who":null},{"_id":"59e1b47b421aa90fef203481","createdAt":"2017-10-14T14:53:47.998Z","desc":"详细介绍java垃圾回收的过程及相关算法","publishedAt":"2017-10-16T12:19:20.311Z","source":"chrome","type":"Android","url":"https://mp.weixin.qq.com/s?__biz=MzIwODI3MTc2Ng==&mid=2649647405&idx=1&sn=46a48cedd1540a994cd316ca164e005a&chksm=8f1f69d4b868e0c25245676ac55dc8d1fcad3dfa4bc63a2e0835b0a1155f1d2320a45a7c7078#rd","used":true,"who":"技术特工队"},{"_id":"59e4092c421aa90fe50c016d","createdAt":"2017-10-16T09:19:40.793Z","desc":"几条小经验帮你美化你的GitHub开源项目","publishedAt":"2017-10-16T12:19:20.311Z","source":"web","type":"Android","url":"https://mp.weixin.qq.com/s?__biz=MzIwMzYwMTk1NA==&mid=2247487344&idx=1&sn=744a9ebc0425fb3fa17c3f62eb59e421","used":true,"who":"陈宇明"},{"_id":"59dc7149421aa94e07d18490","createdAt":"2017-10-10T15:05:45.902Z","desc":"使用 Kotlin 实现的一个 Dribbble 客户端","images":["http://img.gank.io/05d6552f-97ba-4d52-ad33-3caeba5cb327","http://img.gank.io/84594f1b-d10e-42a3-afc1-c7d2bf9ac0cf"],"publishedAt":"2017-10-11T12:40:42.545Z","source":"web","type":"Android","url":"https://github.com/armcha/Ribble","used":true,"who":" Thunder Bouble"},{"_id":"59dcca81421aa94e0053bddf","createdAt":"2017-10-10T21:26:25.797Z","desc":"最近在给某某银行做项目的时,涉及到了数据埋点,性能监控等问题,那我们起先想到的有两种方案,方案之一就是借助第三方,比如友盟、Bugly等,由于项目是部署在银行的网络框架之内的,所以该方案不可行。","publishedAt":"2017-10-11T12:40:42.545Z","source":"web","type":"Android","url":"https://mp.weixin.qq.com/s?__biz=MzIyMjQ0MTU0NA==&mid=2247484445&idx=1&sn=8eef04a7932b58ef0012643db228fb32&chksm=e82c3d3adf5bb42c88333160a88c7b05fb5f45798434afa956fe1f1a58c7713ef121c7ea0af4&scene=0&key=7460e137ddd94f92f668e812cfc0aef8fde2bdf7943c7409875cce12a3baed3526f31e4a707ed86896ee8ddbbf761bb2f09b2d7406c3b9016589495240d835d967a2141231c43d084635a7df11647fb0&ascene=0&uin=MjMzMzgwOTEwMQ%3D%3D&devicetype=iMac+MacBookPro12%2C1+OSX+OSX+10.10.5+build(14F27)&version=11020201&pass_ticket=54ym37fDoXgDZm7nzjGt6KNDR9%2F9ZIU8%2Bo5kNcGEXqi8GKijls6et5TXcXxbERi%2F","used":true,"who":"Tamic (码小白)"}] */ 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 { /** * _id : 59de2f22421aa90fe50c015c * createdAt : 2017-10-11T22:48:02.721Z * desc : 用 Kotlin 实现的基于物理的动画 * images : ["http://img.gank.io/58925abb-3e11-4d6e-9e44-a4567c03d03f"] * publishedAt : 2017-10-17T13:10:43.731Z * source : web * type : Android * url : https://github.com/sagar-viradiya/AndroidPhysicsAnimation * used : true * who : Thunder Bouble */ 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; } }}
阅读全文
0 0
- Fragment
- Fragment
- fragment
- Fragment
- Fragment
- Fragment
- Fragment
- fragment
- fragment
- Fragment
- Fragment
- fragment
- Fragment
- Fragment
- Fragment
- Fragment
- Fragment
- fragment
- 关于openfire服务器启动变慢问题解决
- 其他题目---调整[0,x)区间上的数出现的概率
- Stencil Buffer&Stencil Test
- 用户管理系统模板
- 洛谷1082 同余方程
- fragment
- Node 调试指南 —— Inspector 协议
- 使用SpringCloud搭建微服务<二>---------创建微服务的消费者
- MyTask接口方法
- 跳转
- tomcat配置环境变量后在cmd中输入startup出现the JRE_HOME environment variable is not defined correctly This environ
- 综合2
- 一只想要进步的菜鸟
- 当同时导入多个第三方jar时引起的so库冲突或者找不到库UnsatisfiedLinkError的解决方法