今日头条(MyFragment,Myadapter,MenuInfo类)
来源:互联网 发布:二进制算法口诀 编辑:程序博客网 时间:2024/06/06 09:45
//*************************************************/MenuInfo类
package com.example.my;import java.util.List;/** * Created by dell on 2017/8/16. */public class MenuInfo { /** * status : 1 * info : 获取内容成功 * data : [{"news_id":"18538","news_title":"见证王者风采,玩转电竞周末 2017成都智博会精彩不要错过!","news_summary":"2017年7月7日-9日,2017中国(成都)智慧产业国际博览会将在成都新世纪国际会展中心盛大开幕,该博览会除了展示智慧","pic_url":"http://f.expoon.com/sub/news/2017/07/03/879442_230x162_0.jpg"},{"news_id":"14740","news_title":"第十七届成都国际家具展览会\u2014\u20147月3日盛装呈现","news_summary":"2016年7月3日,国内三大家具展之一,第十七届成都国际家具工业展览会(以下简称\u201c成都家具展\u201d)将在世纪城新会展中心盛装","pic_url":"http://f.expoon.com/sub/news/2016/06/23/721512_230x162_0.jpg"},{"news_id":"14129","news_title":"全景看不一样的博鳌亚洲论坛","news_summary":"近日,举办的博鳌亚洲论坛2016年年会的分论坛通过全景相机拍摄。当日,主题为\u201c亚洲新未来:新活力与新愿景\u201d的博鳌亚洲论坛","pic_url":"http://f.expoon.com/sub/news/2016/03/24/417246_230x162_0.jpg"},{"news_id":"14083","news_title":"2016上海国际虚拟现实高峰论坛暨展览会","news_summary":"由中华人民共和国商务部、中华人民共和国科学技术部、中华人民共和国国家知识产权局所主办的2016上海国际虚拟现实高峰论坛暨","pic_url":"http://f.expoon.com/sub/news/2016/03/14/588974_230x162_0.jpg"},{"news_id":"14082","news_title":"2016全球首届VR&AR互动娱乐博览会","news_summary":"2016全球首届VR&AR互动娱乐博览会将在2016年10月12日\u201414日深圳会展中心盛大举办!","pic_url":"http://f.expoon.com/sub/news/2016/03/14/899861_230x162_0.jpg"},{"news_id":"14071","news_title":"幻影星空VR游戏跑步机 上海、广州展会引试玩热潮","news_summary":"广州展会上汇聚了中国顶尖的游艺设备品牌商,各种新奇好玩的游乐设备让人眼花缭乱,而在一个主打\u201c全民对战、玩出健康\u201d的幻影星","pic_url":"http://f.expoon.com/sub/news/2016/03/11/594102_230x162_0.png"},{"news_id":"14069","news_title":"HTC Vive开发者峰会深圳召开 共促VR生态发展","news_summary":"3月10日,HTC Vive开发者峰会于深圳威盛科技大厦隆重举行,峰会现场聚集来自全国近千名VR游戏开发者、创业者以及行","pic_url":"http://f.expoon.com/sub/news/2016/03/11/360348_230x162_0.jpg"},{"news_id":"13991","news_title":"2016中国VR开发者论坛召开,暴风魔镜推VR平台发展","news_summary":"近日,由\u201c国内虚拟现实引领者\u201d暴风魔镜、\u201c虚拟现实第一站\u201dVR界共同主办的\u201c2016中国VR开发者论坛\u201d在吉林动画学院召","pic_url":"http://f.expoon.com/sub/news/2016/03/04/973715_230x162_0.jpg"},{"news_id":"13906","news_title":"2016年虚拟现实大会5月将于北京举办","news_summary":"2016年被视为虚拟现实技术元年,新一轮热潮正在席卷全球。其产业发展迅猛,行业发展空间广阔。","pic_url":"http://f.expoon.com/sub/news/2016/02/22/627538_230x162_0.jpg"},{"news_id":"13878","news_title":"第十届中国(青岛)国际建筑节能和新型建材博览会","news_summary":"由中国建材联合会、中国贸促会建材分会、海展集团所主办的第十届中国(青岛)国际建筑节能和新型建材博览会将于2016年7月1","pic_url":"http://f.expoon.com/sub/news/2016/02/16/370742_230x162_0.jpg"},{"news_id":"13877","news_title":"第十二届中国(青岛)国际门窗幕墙及相关设备展览会","news_summary":"由中国建材联合会、中国贸促会建材分会、海展集团所主办的第十二届中国(青岛)国际门窗幕墙及相关设备展览会将于2016年7月","pic_url":"http://f.expoon.com/sub/news/2016/02/16/599992_230x162_0.jpg"},{"news_id":"13876","news_title":"2016第七届(上海)国际高端食品饮料展览会","news_summary":"由中国饭店协会所主办的2016第七届(上海)国际高端食品饮料展览会将于2016年8月25\u201427日在上海新国际博览中心盛大","pic_url":"http://f.expoon.com/sub/news/2016/02/16/502258_230x162_0.jpg"},{"news_id":"13875","news_title":"2016上海餐饮连锁加盟及数字化管理展览会","news_summary":"由中国饭店协会、亚洲好食材联盟所主办的2016上海餐饮连锁加盟及数字化管理展览会将于2016年8月25日\u201427日在上海新","pic_url":"http://f.expoon.com/sub/news/2016/02/16/719167_230x162_0.jpg"},{"news_id":"13872","news_title":"2016国际(杭州)文物交流博览会","news_summary":"为弘扬中国传统文化和灿烂文明,推动文化艺术的繁荣与发展,同时为文玩经营者和收藏爱好者之间搭建一个交流交易的平台,经有关部","pic_url":"http://f.expoon.com/sub/news/2016/02/03/431004_230x162_0.jpg"},{"news_id":"13871","news_title":"2016中国国际纺织机械展暨ITMA亚洲展览会展","news_summary":"据中国纺织机械协会副会长顾平介绍,中国国际纺织机械展览会与ITMA亚洲展联合以后,主办方引进了先进的国际办展理念,并与中","pic_url":"http://f.expoon.com/sub/news/2016/02/03/219921_230x162_0.jpg"},{"news_id":"13864","news_title":"2016湖南车展5月在湖南国际会展中心举行","news_summary":"中部第一车展\u201d\u2014\u20142016湖南车展全新起航。记者从车展组委会获悉,以\u201c乐享生活\u201d为主题的2016湖南车展,5月5日至5月","pic_url":"http://f.expoon.com/sub/news/2016/02/01/498241_230x162_0.jpg"},{"news_id":"13863","news_title":"第二届大数据产业博览会五月贵阳召开","news_summary":"从\u201c2016中国贵阳电子商务大会暨贵阳国际大数据产业博览会\u201d新闻发布会上获悉,第二届数博会将于2016年5月26日至29","pic_url":"http://f.expoon.com/sub/news/2016/02/01/155596_230x162_0.jpg"},{"news_id":"13840","news_title":"IG,CHINA 2016 全球气体行业第一展首站移师上海","news_summary":"成功举办十七载,继往开来谱新篇。全球气体行业最具影响力的第一盛会\u2014\u2014中国国际气体技术、设备与应用展览会(IG, Chin","pic_url":"http://f.expoon.com/sub/news/2016/01/27/556463_230x162_0.jpg"},{"news_id":"13826","news_title":"婴儿纸尿裤市场将迎来加速跑","news_summary":"近年来,纸尿裤正经历着快速发展阶段。据预测,全球婴儿纸尿裤的市场规模将在2020年达到594亿美元。新兴市场,特别是亚洲","pic_url":"http://f.expoon.com/sub/news/2016/01/26/428779_230x162_0.jpg"},{"news_id":"13818","news_title":"内蒙古非遗年货展暨传统文化月月传在内蒙古展览馆隆重开幕","news_summary":"2016年1月22日,由自治区文化厅主办,内蒙古展览馆和各盟市文化局承办的\u201c非遗走进现代生活\u2014\u2014全区非物质文化遗产年货展","pic_url":"http://f.expoon.com/sub/news/2016/01/25/511616_230x162_0.jpg"}] */ private int status; private String info; private List<DataBean> data; public int getStatus() { return status; } public void setStatus(int status) { this.status = status; } public String getInfo() { return info; } public void setInfo(String info) { this.info = info; } public List<DataBean> getData() { return data; } public void setData(List<DataBean> data) { this.data = data; } public static class DataBean { /** * news_id : 18538 * news_title : 见证王者风采,玩转电竞周末 2017成都智博会精彩不要错过! * news_summary : 2017年7月7日-9日,2017中国(成都)智慧产业国际博览会将在成都新世纪国际会展中心盛大开幕,该博览会除了展示智慧 * pic_url : http://f.expoon.com/sub/news/2017/07/03/879442_230x162_0.jpg */ private String news_id; private String news_title; private String news_summary; private String pic_url; public String getNews_id() { return news_id; } public void setNews_id(String news_id) { this.news_id = news_id; } public String getNews_title() { return news_title; } public void setNews_title(String news_title) { this.news_title = news_title; } public String getNews_summary() { return news_summary; } public void setNews_summary(String news_summary) { this.news_summary = news_summary; } public String getPic_url() { return pic_url; } public void setPic_url(String pic_url) { this.pic_url = pic_url; } }}
//************************************//Myadapter类
package com.example.my;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentPagerAdapter;import android.support.v4.app.FragmentStatePagerAdapter;import android.view.ViewGroup;import java.util.ArrayList;/** * Created by dell on 2017/8/15. */public class Myadapter extends FragmentStatePagerAdapter { private String[] titles = {"推荐", "热点", "北京", "视屏", "社会", "娱乐", "头条", "新闻", "体育", "腾讯", "爱奇艺"}; private ArrayList<Fragment> mFragment = new ArrayList<Fragment>(); private FragmentManager mFragmentManager; public Myadapter(FragmentManager fm) { super(fm); mFragmentManager = fm; } public Myadapter(FragmentManager fm, ArrayList<Fragment> tempFragment) { super(fm); mFragmentManager = fm; mFragment = tempFragment; } @Override public Fragment getItem(int position) { MyFragment myFragment = new MyFragment(); return myFragment; }// @Override// public void destroyItem(ViewGroup container, int position, Object object) {//// super.destroyItem(container, position, object);// } @Override public int getCount() { return titles.length; } @Override public CharSequence getPageTitle(int position) { return titles[position]; }}
/**********************************************************//MyFragment类
package com.example.my;import android.graphics.drawable.BitmapDrawable;import android.os.AsyncTask;import android.os.Bundle;import android.os.Environment;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.AdapterView;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.PopupWindow;import android.widget.TextView;import com.google.gson.Gson;import com.limxing.xlistview.view.XListView;import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiskCache;import com.nostra13.universalimageloader.core.DisplayImageOptions;import com.nostra13.universalimageloader.core.ImageLoader;import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;import java.io.File;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.HttpURLConnection;import java.net.URL;import java.net.URLConnection;import java.util.List;import static android.R.attr.path;/** * Created by dell on 2017/8/15. */public class MyFragment extends Fragment implements XListView.IXListViewListener { private View view; private XListView xlistview; ImageLoader imageLoader; private int p = 1; private boolean flag; private Myadapter1 myadapter1; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { view = inflater.inflate(R.layout.myfrgment, container, false); return view; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); xlistview = (XListView) view.findViewById(R.id.xlistview); xlistview.setPullLoadEnable(true); xlistview.setXListViewListener(this);// getDates("http://api.expoon.com/AppNews/getNewsList/type/1", p + ""); getDates("http://api.expoon.com/AppNews/getNewsList/type/2/", p + ""); } public void getDates(String path, final String page) { new AsyncTask<String, Void, String>() { private List<MenuInfo.DataBean> data; @Override protected void onPostExecute(String s) { super.onPostExecute(s); if (s != null) { Gson gson = new Gson(); MenuInfo menuInfo = gson.fromJson(s, MenuInfo.class); data = menuInfo.getData(); if (myadapter1 == null) { myadapter1 = new Myadapter1(data); xlistview.setAdapter(myadapter1); xlistview.setOnItemClickListener(new AdapterView.OnItemClickListener() { private PopupWindow pop; @Override public void onItemClick(AdapterView<?> parent, View view, final int position, long id) { final ImageView image = (ImageView) view.findViewById(R.id.image);// TextView text = (TextView) view.findViewById(R.id.text); View view2 = View.inflate(getActivity(), R.layout.pop, null); pop = new PopupWindow(view2, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); TextView delete = (TextView) view2.findViewById(R.id.delete); ImageView dismiss = (ImageView) view2.findViewById(R.id.dismiss); TextView shoucang = (TextView) view2.findViewById(R.id.shoucang); TextView read = (TextView) view2.findViewById(R.id.read); image.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int[] a = new int[2]; image.getLocationOnScreen(a); pop.setFocusable(true); pop.setTouchable(true); pop.setBackgroundDrawable(new BitmapDrawable()); pop.setOutsideTouchable(true); pop.showAtLocation(image, 0, a[0], a[1]); // pop.showAsDropDown(imageView); } }); delete.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { data.remove(position - 1); myadapter1.notifyDataSetChanged(); pop.dismiss(); } }); dismiss.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { pop.dismiss(); } }); } }); } else { myadapter1.LodeMore(data, flag); myadapter1.notifyDataSetChanged(); }// adapter = new MyAdapter(this, arrayList);// listview.setAdapter(adapter); } } @Override protected String doInBackground(String... strings) { try { String path = strings[0]; URL url = new URL(path); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); urlConnection.setRequestMethod("POST"); urlConnection.setConnectTimeout(200); urlConnection.setReadTimeout(200); OutputStream outputStream = urlConnection.getOutputStream(); outputStream.write(("p=" + page).getBytes()); outputStream.flush(); int code = urlConnection.getResponseCode(); if (code == 200) { InputStream is = urlConnection.getInputStream(); String json = StreamTook.read(is); return json; } } catch (Exception e) { e.printStackTrace(); } return null; } }.execute(path, page); } @Override public void onRefresh() { ++p; getDates("http://api.expoon.com/AppNews/getNewsList/type/2/", p + ""); flag = true; xlistview.stopRefresh(true); } @Override public void onLoadMore() { ++p; getDates("http://api.expoon.com/AppNews/getNewsList/type/2/", p + ""); flag = false; xlistview.stopLoadMore(); } class Myadapter1 extends BaseAdapter { List<MenuInfo.DataBean> data; private final DisplayImageOptions options; public Myadapter1(List<MenuInfo.DataBean> data) { this.data = data; imageLoader = ImageLoader.getInstance(); File file = new File(Environment.getExternalStorageDirectory(), "/Bwei"); if (!file.exists()) file.mkdirs(); ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(getActivity()) .diskCache(new UnlimitedDiskCache(file)) .build(); imageLoader.init(configuration); options = new DisplayImageOptions.Builder() .showImageOnLoading(R.mipmap.ic_launcher) .cacheOnDisk(true) .build(); } public void LodeMore(List<MenuInfo.DataBean> datas, boolean flag) { for (MenuInfo.DataBean bean : datas) { if (flag) { data.add(0, bean); } else { data.add(bean); } } } @Override public int getCount() { return data.size(); } @Override public Object getItem(int position) { return data.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder viewHolder = null; if (convertView == null) { convertView = convertView.inflate(getActivity(), R.layout.item1, null); viewHolder = new ViewHolder(); viewHolder.textitem1 = convertView.findViewById(R.id.textitem1); viewHolder.imageitem1 = convertView.findViewById(R.id.imageitem1); convertView.setTag(viewHolder); } else { viewHolder = (ViewHolder) convertView.getTag(); } viewHolder.textitem1.setText(data.get(position).getNews_summary()); getimage(data.get(position).getPic_url(), viewHolder.imageitem1); return convertView; } class ViewHolder { TextView textitem1; ImageView imageitem1; } } public void getimage(String path, ImageView imageView) { DisplayImageOptions options = new DisplayImageOptions.Builder() .cacheOnDisk(true) .cacheInMemory(true) .build(); ImageLoader.getInstance().displayImage(path, imageView, options); }}
阅读全文
0 0
- 今日头条(MyFragment,Myadapter,MenuInfo类)
- 今日头条(TodayNews)
- 今日头条的主类
- 今日头条的Fragment类
- 今日头条(App和MainActivity类)
- 高仿今日头条(转载)
- 高仿今日头条(1)
- 高仿今日头条(2)
- 仿今日头条的(一)
- 今日头条项目(模仿)
- 今日头条面试(android)
- 头条校招(今日头条2017秋招真题)
- 今日头条 --新闻阅读器 (二)
- 模拟题(今日头条)
- 串珠问题(今日头条笔试)
- 今日头条笔试题(一)
- 今日头条算法
- 面试-今日头条
- Vue.js学习笔记:props传递数据
- 腾讯2018应届毕业生秋招之设计类招聘详情
- 实现一个HTTP服务器的Demo
- JQuery中EasyUi的$.tree的使用
- java系统自动打升级包工具
- 今日头条(MyFragment,Myadapter,MenuInfo类)
- javascript 禁止下拉页面 “橡皮筋“效果
- 多级菜单实现逻辑
- Android 退出所有的Activity
- Kettle与taskctl比较
- 关于sprintf_s,弹出Expression:(“Buffer too small”,0)
- sgu223Little Kings(状压)
- python学习心得一(迭代)
- Vuforia实现触屏原地旋转物体的功能