添加依赖
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"