XListView+ PullToRefreshListView+ViewPager
来源:互联网 发布:虾米音乐解绑淘宝 编辑:程序博客网 时间:2024/05/16 18:53
图1 主页面 图二 下拉 图3 侧滑
//关联 library
//联网权限
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
关联XListView
可以在 XListView汇总 中查看
activity_main.xml
<?xml version="1.0" encoding="utf-8"?><android.support.v4.widget.DrawerLayout android:id="@+id/dl" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="bbb.bwie.com.zonghelx.MainActivity"> <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:id="@+id/img" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@mipmap/ic_launcher_round" /> <HorizontalScrollView android:id="@+id/hs" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="30dip" > <LinearLayout android:id="@+id/showtitle" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content"> </LinearLayout> </HorizontalScrollView> <android.support.v4.view.ViewPager android:id="@+id/vp" android:layout_width="match_parent" android:layout_height="match_parent"> </android.support.v4.view.ViewPager> </LinearLayout> <LinearLayout android:id="@+id/aaaa" android:orientation="horizontal" android:layout_gravity="left" android:choiceMode="singleChoice" android:layout_width="match_parent" android:layout_height="match_parent"><bbb.bwie.com.zonghelx.XListView android:id="@+id/xlv" android:layout_width="match_parent" android:layout_height="match_parent"></bbb.bwie.com.zonghelx.XListView> </LinearLayout></android.support.v4.widget.DrawerLayout>
xlistviewtext.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/name" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <ImageView android:id="@+id/img" android:layout_width="match_parent" android:layout_height="wrap_content" /></LinearLayout>vptextview.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="match_parent"android:layout_height="match_parent"><ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/img2" /></LinearLayout>textview.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="match_parent"android:layout_height="match_parent"><ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/img" /><TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/name" /></LinearLayout>ViewPager循化部分
vp.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v4.view.ViewPager android:layout_width="match_parent" android:layout_height="300dp" android:id="@+id/vp" ></android.support.v4.view.ViewPager> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/ll" android:orientation="horizontal" ></LinearLayout></LinearLayout>
PullToRefreshListView下拉
fragment.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <com.handmark.pulltorefresh.library.PullToRefreshListView android:id="@+id/pt" android:layout_width="match_parent" android:layout_height="match_parent"> </com.handmark.pulltorefresh.library.PullToRefreshListView></LinearLayout>
scenic_item_list.xml
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@color/colorAccent" android:orientation="horizontal" > <ImageView android:id="@+id/img" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_marginTop="10dp" android:src="@mipmap/ic_launcher" /> <LinearLayout android:id="@+id/layout1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_marginTop="15dp" android:layout_toRightOf="@id/img" android:orientation="horizontal" > <TextView android:id="@+id/title1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="名称:" /> <TextView android:id="@+id/title2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="" /> </LinearLayout> <LinearLayout android:id="@+id/layout2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/layout1" android:layout_marginLeft="10dp" android:layout_marginTop="10dp" android:layout_toRightOf="@id/img" android:orientation="horizontal" > <TextView android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="地点:" /> <TextView android:id="@+id/content" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="" /> </LinearLayout></RelativeLayout>
MainActivity.java
package bbb.bwie.com.zonghelx;import android.graphics.Color; import android.os.Handler; import android.os.Message; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.HorizontalScrollView; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import com.google.gson.Gson; import com.nostra13.universalimageloader.core.ImageLoader; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import java.util.ArrayList; import java.util.List;public class MainActivity extends AppCompatActivity implements View.OnClickListener,XListView.IXListViewListener{ private HorizontalScrollView hs; private LinearLayout show; private ViewPager vp; private String[] titles; private ArrayList<TextView> list; private XListView xlv; private List<Bean2.DataBean.ComicsBean> comics; private ArrayList<User2> list2; private ViewHolder vh; private View view; private Mydatd2 mydatd2; private Handler handler=new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); mydatd2.notifyDataSetChanged(); close(); } }; private void close() { xlv.stopLoadMore(); xlv.stopRefresh(); xlv.setRefreshTime("2017-09-17"); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); hs = (HorizontalScrollView) findViewById(R.id.hs); show = (LinearLayout) findViewById(R.id.showtitle); vp = (ViewPager) findViewById(R.id.vp); //xlistview xlv = (XListView) findViewById(R.id.xlv); xlv.setPullLoadEnable(true); xlv.setPullRefreshEnable(true); xlv.setXListViewListener(this); new Thread(){ private StringBuilder builder; @Override public void run() { super.run(); try { URL url = new URL("http://api.kkmh.com/v1/daily/comic_lists/0?since=0&gender=0&sa_event=eyJwcm9qZWN0Ijoia3VhaWthbl9hcHAiLCJ0aW1lIjoxNDg3NzQyMjQwNjE1LCJwcm9wZXJ0aWVzIjp7IkhvbWVwYWdlVGFiTmFtZSI6IueDremXqCIsIlZDb21tdW5pdHlUYWJOYW1lIjoi54Ot6ZeoIiwiJG9zX3ZlcnNpb24iOiI0LjQuMiIsIkdlbmRlclR5cGUiOiLlpbPniYgiLCJGcm9tSG9tZXBhZ2VUYWJOYW1lIjoi54Ot6ZeoIiwiJGxpYl92ZXJzaW9uIjoiMS42LjEzIiwiJG5ldHdvcmtfdHlwZSI6IldJRkkiLCIkd2lmaSI6dHJ1ZSwiJG1hbnVmYWN0dXJlciI6ImJpZ25veCIsIkZyb21Ib21lcGFnZVVwZGF0ZURhdGUiOjAsIiRzY3JlZW5faGVpZ2h0IjoxMjgwLCJIb21lcGFnZVVwZGF0ZURhdGUiOjAsIlByb3BlcnR5RXZlbnQiOiJSZWFkSG9tZVBhZ2UiLCJGaW5kVGFiTmFtZSI6IuaOqOiNkCIsImFidGVzdF9ncm91cCI6MTEsIiRzY3JlZW5fd2lkdGgiOjcyMCwiJG9zIjoiQW5kcm9pZCIsIlRyaWdnZXJQYWdlIjoiSG9tZVBhZ2UiLCIkY2FycmllciI6IkNoaW5hIE1vYmlsZSIsIiRtb2RlbCI6IlZQaG9uZSIsIiRhcHBfdmVyc2lvbiI6IjMuNi4yIn0sInR5cGUiOiJ0cmFjayIsImRpc3RpbmN0X2lkIjoiQTo2YWRkYzdhZTQ1MjUwMzY1Iiwib3JpZ2luYWxfaWQiOiJBOjZhZGRjN2FlNDUyNTAzNjUiLCJldmVudCI6IlJlYWRIb21lUGFnZSJ9"); try { URLConnection connection = url.openConnection(); InputStream inputStream = connection.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); builder = new StringBuilder(); String tem=""; while((tem=reader.readLine())!=null){ builder.append(tem); } Log.e("========读取到的数据=======", builder.toString()); } catch (IOException e) { e.printStackTrace(); } } catch (MalformedURLException e) { e.printStackTrace(); } runOnUiThread(new Runnable() { @Override public void run() { list2 = new ArrayList<>(); Gson gson = new Gson(); Bean2 bean2 = gson.fromJson(builder.toString(), Bean2.class); comics = bean2.getData().getComics(); for(int j=0;j<comics.size();j++){ String title = comics.get(j).getTitle(); Bean2.DataBean.ComicsBean.TopicBean topic = comics.get(j).getTopic(); String cover_image_url = topic.getCover_image_url(); list2.add(new User2(title,cover_image_url)); } mydatd2 = new Mydatd2(); xlv.setAdapter(mydatd2); } }); } }.start(); titles = new String[]{"头条", "社会", "国内", "国际", "娱乐", "体育", "军事", "科技", "财经", "时尚"}; list = new ArrayList<>(); for(int i=0;i<titles.length;i++){ TextView view = new TextView(this); view.setText(titles[i]); view.setTextSize(20); if(i==0){ view.setTextColor(Color.RED); }else{ view.setTextColor(Color.BLACK); } view.setOnClickListener(this); view.setId(i+1000); //设置textview控件的宽高 LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); params.setMargins(20,10,20,10);//设置内边距 show.addView(view,params);//将textview控件添加到滚动控件里面的LinearLayout布局 list.add(view);//添加到集合 } //开始做viewPager vp.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) { @Override public Fragment getItem(int position) { if(position==0){ fragment2 fragment2 = new fragment2(); return fragment2; } return fragment.getin(list.get(position).getText().toString()); } @Override public int getCount() { return titles.length; } }); vp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { for(int i=0;i<list.size();i++){ if(position==i){ list.get(i).setTextColor(Color.RED); }else{ list.get(i).setTextColor(Color.BLACK); } } TextView textView = list.get(position); int width = textView.getWidth();//获取宽度 //计算该滑到哪里 hs.scrollTo((width+20)*position,0);//viewpager滑动时与滚动控件想配合一起滑动 } @Override public void onPageScrollStateChanged(int state) { } }); } @Override public void onClick(View view) { int id = view.getId(); vp.setCurrentItem(id-1000); } @Override public void onRefresh() { handler.postDelayed(new Runnable() { @Override public void run() { list2.add(0,new User2("怪物恋人","http://f2.kkmh.com/image/170915/a56o0vmx8.webp-w640")); } },3000); handler.sendEmptyMessageDelayed(0,3000); } @Override public void onLoadMore() { handler.postDelayed(new Runnable() { @Override public void run() { list2.add(new User2("怪物恋人","http://f2.kkmh.com/image/170915/a56o0vmx8.webp-w640")); handler.sendEmptyMessage(0); } },3000); } class Mydatd2 extends BaseAdapter{ @Override public int getCount() { return list2.size(); } @Override public Object getItem(int i) { return list2.get(i); } @Override public long getItemId(int i) { return i; } @Override public View getView(int i, View view, ViewGroup viewGroup) { if(view==null){ vh = new ViewHolder(); view = View.inflate(MainActivity.this, R.layout.xlistviewtext, null); vh.name = (TextView) view.findViewById(R.id.name); vh.img = (ImageView) view.findViewById(R.id.img); view.setTag(vh); }else{ vh= (ViewHolder) view.getTag(); } vh.name.setText(list2.get(i).name); ImageLoader.getInstance().displayImage(list2.get(i).imgg, vh.img); return view; } } class ViewHolder { TextView name; ImageView img; }}
Bean.java
import java.util.List;public class Bean { /** * code : 200 * msg : success * newslist : [{"ctime":"2017-09-19","description":"环球时报","picUrl":"https://zxpic.gtimg.com/infonew/0/wechat_pics_-46615027.jpg/640","title":"女子叫外卖给了个差评,丈夫被打破头住进了ICU","url":"https://mp.weixin.qq.com/s?src=16&ver=375×tamp=1505779230&signature=CAlSqZ3n0Q8Kt4bBgQEA5K9eg0cIayPvU5pVKjbLJuEeNVcChw5FnDrX1mWr22ffho*faq7Pvjn50nDj61qooov0u0bQYNHdQWJwBa6eUuA="},{"ctime":"2017-09-19","description":"读书","picUrl":"https://zxpic.gtimg.com/infonew/0/wechat_pics_-18924698.static/640","title":"2017年最感动朋友圈的24张图,你看到第几张哭了?","url":"https://mp.weixin.qq.com/s?src=16&ver=375×tamp=1505779230&signature=Q9sEVt3GsEvTE4mA5HsS603gjFb3nLI8g4PmsWRueYJtGxDWr-XYHoxcsJngodTDNbX8M8jDWz3Al4feeWIqK8k2WuZ-6pAAxzXpuiADlIo="},{"ctime":"2017-09-19","description":"美容","picUrl":"https://zxpic.gtimg.com/infonew/0/wechat_pics_-38321003.jpg/640","title":"台湾第一女神老去:与其取悦他人,不如活出自我!","url":"https://mp.weixin.qq.com/s?src=16&ver=375×tamp=1505779229&signature=QowTA3t3uMqXaYjLyuGsIHXwkqfHG1tRC5XvM-Z7FSlrnbGfWiTiuPIX8ljPkd7lDHpL-ZWfIuC7k3aWY*PNq*njUvns1RuaFx-OJDHKbac="},{"ctime":"2017-09-19","description":"子墨微澜","picUrl":"https://zxpic.gtimg.com/infonew/0/wechat_pics_-41014815.jpg/640","title":"想那么多干嘛?(精辟)","url":"https://mp.weixin.qq.com/s?src=16&ver=375×tamp=1505779229&signature=bu1CljvHMZmocVPdxpyY2eHL3z7l0T*0n890eLzz5wvQac-B7fUI2*XZ4ukBwNeRFhaTK0R9YFDdvarhuxjUlq7jgzF1-6hWEF17XTFlfzM="},{"ctime":"2017-09-19","description":"中国新闻周刊","picUrl":"https://zxpic.gtimg.com/infonew/0/wechat_pics_-13543653.jpg/640","title":"如果你时常感到自卑,可能是父母\u201c虐待\u201d过你","url":"https://mp.weixin.qq.com/s?src=16&ver=375×tamp=1505779229&signature=VP1o0Rt*YATe7ZoDsk9KD4BcMPnrn1E4-zIukPe7GXrccA4Fk0ZOPtlnV0iTxWSnF*xpEa8NMcOzpy3nc3cBHKIfCzHIabnSqTUx-mS--y8="},{"ctime":"2017-09-19","description":"音乐图文场景","picUrl":"https://zxpic.gtimg.com/infonew/0/wechat_pics_-46711463.static/640","title":"在吗?云飞新歌《高贵的蔚蓝》,太好听了!必须收 藏!","url":"https://mp.weixin.qq.com/s?src=16&ver=375×tamp=1505779228&signature=87KSRM5DMdWJMkQYXTRoowngnewSochWJwudA5cYiQhy4Uh-JAB0fDTslhLllRGREi17ZTvCIO9m6bOmn1sEJHZBRNYLGRiXryYrBT1vDAc="},{"ctime":"2017-09-19","description":"慈怀诗会","picUrl":"https://zxpic.gtimg.com/infonew/0/wechat_pics_-46711221.jpg/640","title":"乐音:一曲《恋人心》,待我一袭袈裟,许你相思放下!","url":"https://mp.weixin.qq.com/s?src=16&ver=375×tamp=1505779228&signature=EliKkezrcZlU0mSypyPVxkzpFZ9KO2eoihKpp1VSj6sD97b8EKoYkw7xFqOp*iGNcsNWfB4sL*ln7AFipKgzzZQJ4EpMqdOA9pr-zY3Dsio="},{"ctime":"2017-09-19","description":"品味人生","picUrl":"https://zxpic.gtimg.com/infonew/0/wechat_pics_-28219915.jpg/640","title":"老了要想活得漂亮,就要立刻扔掉这几样东西!","url":"https://mp.weixin.qq.com/s?src=16&ver=375×tamp=1505779227&signature=gwLI3OJDvq3AQ4UB*aypQ39wsBqhPh3T*LR1cDiMBJ08*rLYh7qhetPN7THwLiyfzDT2bTFoS51e-aMCiPNEhT7QjgasCGIaA2PqxWe*2TA="},{"ctime":"2017-09-19","description":"品味人生","picUrl":"https://zxpic.gtimg.com/infonew/0/wechat_pics_-28219915.jpg/640","title":"无论走到哪里,请记得带上自己的阳光!","url":"https://mp.weixin.qq.com/s?src=16&ver=375×tamp=1505779227&signature=5jFGGqRIRWiWH64M6sG8XHN6RLDY7Gt54aNXQ-JAUE34RZhadZcGHzgnquSCIefOrBk8wXuw72vh4xjPq3D-vuF8IATF458AX2WH6LcmRWM="},{"ctime":"2017-09-19","description":"清净之道","picUrl":"https://zxpic.gtimg.com/infonew/0/wechat_pics_-46710883.jpg/640","title":"人生最大的自由:不再在乎别人对你的评价","url":"https://mp.weixin.qq.com/s?src=16&ver=375×tamp=1505779227&signature=zoul25DBE8SR4zUWG94mxeOw2BJimbdNa9h2A2OcRdfuPy*ZuxJlZCw2AV8BCvI-vfkVRuqFnPOAmDjffWLBaV1ntXXubhW--ClRhlfVTNI="}] */ 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-09-19 * description : 环球时报 * picUrl : https://zxpic.gtimg.com/infonew/0/wechat_pics_-46615027.jpg/640 * title : 女子叫外卖给了个差评,丈夫被打破头住进了ICU * url : https://mp.weixin.qq.com/s?src=16&ver=375×tamp=1505779230&signature=CAlSqZ3n0Q8Kt4bBgQEA5K9eg0cIayPvU5pVKjbLJuEeNVcChw5FnDrX1mWr22ffho*faq7Pvjn50nDj61qooov0u0bQYNHdQWJwBa6eUuA= */ private String ctime; private String description; private String picUrl; private String title; private String url; public String getCtime() { return ctime; } public void setCtime(String ctime) { this.ctime = ctime; } 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 getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } }}
Bean2.java
import java.util.List;public class Bean2 { /** * code : 200 * data : * message : ok */ private int code; private DataBean data; private String message; public int getCode() { return code; } public void setCode(int code) { this.code = code; } public DataBean getData() { return data; } public void setData(DataBean data) { this.data = data; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public static class DataBean { /** * comics : [ * timestamp : 1505836800 * since : 1 */ private int timestamp; private int since; private List<ComicsBean> comics; public int getTimestamp() { return timestamp; } public void setTimestamp(int timestamp) { this.timestamp = timestamp; } public int getSince() { return since; } public void setSince(int since) { this.since = since; } public List<ComicsBean> getComics() { return comics; } public void setComics(List<ComicsBean> comics) { this.comics = comics; } public static class ComicsBean { /** * info_type : 0 * can_view : true * updated_count : 0 * cover_image_url : http://f2.kkmh.com/image/170920/gbtdel0uk.webp-w640 * created_at : 1505857821 * title : 第5话 算我求你,别爱我了 * updated_at : 1505802423 * selling_kk_currency : 0 * zoomable : 0 * push_flag : 1 * id : 48954 * comic_type : 0 * is_liked : false * label_color : #b400fa * storyboard_cnt : 70 * url : http://www.kuaikanmanhua.com/comics/48954 * likes_count : 76927 * comments_count : 1725 * label_text : 都市 * is_free : true * topic : {"discover_image_url":"","vertical_image_url":"http://f2.kkmh.com/image/170707/6yh0oiynb.webp-w320","cover_image_url":"http://f2.kkmh.com/image/170707/zaqoiy98j.webp-w640","description":"女生的友谊只是虚假的\u201c塑料花\u201d?爱情只是刀口舔蜜的无知幻想?要在这座城市站稳脚跟必用尽心机手段?原本如蝼蚁在都市中摸索的平凡女生无意卷入一场绯闻事件,从迷茫中找到各自爱与梦想的方向重新出发。这是只属于勇敢女生的成长物语。欢迎来到-绯闻都市。【独家/每周三更新 责编:林早上】","created_at":1499611236,"title":"绯闻都市","updated_at":1498833636,"id":1194,"user":{"pub_feed":0,"avatar_url":"http://f2.kkmh.com/image/170709/kj22zg1m4.webp-w180","grade":1,"nickname":"栗子liz(主笔)+沙荼(主笔)+快看漫画团队","reg_type":"author","id":83119868},"label_id":11,"order":500,"comics_count":6,"status":"published"} * shared_count : 0 * label_text_color : #ffffff * serial_no : 0 * status : published */ private int info_type; private boolean can_view; private int updated_count; private String cover_image_url; private int created_at; private String title; private int updated_at; private int selling_kk_currency; private int zoomable; private int push_flag; private int id; private int comic_type; private boolean is_liked; private String label_color; private int storyboard_cnt; private String url; private int likes_count; private int comments_count; private String label_text; private boolean is_free; private TopicBean topic; private int shared_count; private String label_text_color; private int serial_no; private String status; public int getInfo_type() { return info_type; } public void setInfo_type(int info_type) { this.info_type = info_type; } public boolean isCan_view() { return can_view; } public void setCan_view(boolean can_view) { this.can_view = can_view; } public int getUpdated_count() { return updated_count; } public void setUpdated_count(int updated_count) { this.updated_count = updated_count; } public String getCover_image_url() { return cover_image_url; } public void setCover_image_url(String cover_image_url) { this.cover_image_url = cover_image_url; } public int getCreated_at() { return created_at; } public void setCreated_at(int created_at) { this.created_at = created_at; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public int getUpdated_at() { return updated_at; } public void setUpdated_at(int updated_at) { this.updated_at = updated_at; } public int getSelling_kk_currency() { return selling_kk_currency; } public void setSelling_kk_currency(int selling_kk_currency) { this.selling_kk_currency = selling_kk_currency; } public int getZoomable() { return zoomable; } public void setZoomable(int zoomable) { this.zoomable = zoomable; } public int getPush_flag() { return push_flag; } public void setPush_flag(int push_flag) { this.push_flag = push_flag; } public int getId() { return id; } public void setId(int id) { this.id = id; } public int getComic_type() { return comic_type; } public void setComic_type(int comic_type) { this.comic_type = comic_type; } public boolean isIs_liked() { return is_liked; } public void setIs_liked(boolean is_liked) { this.is_liked = is_liked; } public String getLabel_color() { return label_color; } public void setLabel_color(String label_color) { this.label_color = label_color; } public int getStoryboard_cnt() { return storyboard_cnt; } public void setStoryboard_cnt(int storyboard_cnt) { this.storyboard_cnt = storyboard_cnt; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public int getLikes_count() { return likes_count; } public void setLikes_count(int likes_count) { this.likes_count = likes_count; } public int getComments_count() { return comments_count; } public void setComments_count(int comments_count) { this.comments_count = comments_count; } public String getLabel_text() { return label_text; } public void setLabel_text(String label_text) { this.label_text = label_text; } public boolean isIs_free() { return is_free; } public void setIs_free(boolean is_free) { this.is_free = is_free; } public TopicBean getTopic() { return topic; } public void setTopic(TopicBean topic) { this.topic = topic; } public int getShared_count() { return shared_count; } public void setShared_count(int shared_count) { this.shared_count = shared_count; } public String getLabel_text_color() { return label_text_color; } public void setLabel_text_color(String label_text_color) { this.label_text_color = label_text_color; } public int getSerial_no() { return serial_no; } public void setSerial_no(int serial_no) { this.serial_no = serial_no; } public String getStatus() { return status; } public void setStatus(String status) { this.status = status; } public static class TopicBean { /** * discover_image_url : * vertical_image_url : http://f2.kkmh.com/image/170707/6yh0oiynb.webp-w320 * cover_image_url : http://f2.kkmh.com/image/170707/zaqoiy98j.webp-w640 * description : 女生的友谊只是虚假的“塑料花”?爱情只是刀口舔蜜的无知幻想?要在这座城市站稳脚跟必用尽心机手段?原本如蝼蚁在都市中摸索的平凡女生无意卷入一场绯闻事件,从迷茫中找到各自爱与梦想的方向重新出发。这是只属于勇敢女生的成长物语。欢迎来到-绯闻都市。【独家/每周三更新 责编:林早上】 * created_at : 1499611236 * title : 绯闻都市 * updated_at : 1498833636 * id : 1194 * user : {"pub_feed":0,"avatar_url":"http://f2.kkmh.com/image/170709/kj22zg1m4.webp-w180","grade":1,"nickname":"栗子liz(主笔)+沙荼(主笔)+快看漫画团队","reg_type":"author","id":83119868} * label_id : 11 * order : 500 * comics_count : 6 * status : published */ private String discover_image_url; private String vertical_image_url; private String cover_image_url; private String description; private int created_at; private String title; private int updated_at; private int id; private UserBean user; private int label_id; private int order; private int comics_count; private String status; public String getDiscover_image_url() { return discover_image_url; } public void setDiscover_image_url(String discover_image_url) { this.discover_image_url = discover_image_url; } public String getVertical_image_url() { return vertical_image_url; } public void setVertical_image_url(String vertical_image_url) { this.vertical_image_url = vertical_image_url; } public String getCover_image_url() { return cover_image_url; } public void setCover_image_url(String cover_image_url) { this.cover_image_url = cover_image_url; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public int getCreated_at() { return created_at; } public void setCreated_at(int created_at) { this.created_at = created_at; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public int getUpdated_at() { return updated_at; } public void setUpdated_at(int updated_at) { this.updated_at = updated_at; } public int getId() { return id; } public void setId(int id) { this.id = id; } public UserBean getUser() { return user; } public void setUser(UserBean user) { this.user = user; } public int getLabel_id() { return label_id; } public void setLabel_id(int label_id) { this.label_id = label_id; } public int getOrder() { return order; } public void setOrder(int order) { this.order = order; } public int getComics_count() { return comics_count; } public void setComics_count(int comics_count) { this.comics_count = comics_count; } public String getStatus() { return status; } public void setStatus(String status) { this.status = status; } public static class UserBean { /** * pub_feed : 0 * avatar_url : http://f2.kkmh.com/image/170709/kj22zg1m4.webp-w180 * grade : 1 * nickname : 栗子liz(主笔)+沙荼(主笔)+快看漫画团队 * reg_type : author * id : 83119868 */ private int pub_feed; private String avatar_url; private int grade; private String nickname; private String reg_type; private int id; public int getPub_feed() { return pub_feed; } public void setPub_feed(int pub_feed) { this.pub_feed = pub_feed; } public String getAvatar_url() { return avatar_url; } public void setAvatar_url(String avatar_url) { this.avatar_url = avatar_url; } public int getGrade() { return grade; } public void setGrade(int grade) { this.grade = grade; } public String getNickname() { return nickname; } public void setNickname(String nickname) { this.nickname = nickname; } public String getReg_type() { return reg_type; } public void setReg_type(String reg_type) { this.reg_type = reg_type; } public int getId() { return id; } public void setId(int id) { this.id = id; } } } } }}
fragment.java
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.TextView;/public class fragment extends Fragment { @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { Bundle arguments = getArguments(); String sss = arguments.getString("sss"); TextView textView = new TextView(getActivity()); textView.setText(sss); return textView; } public static Fragment getin(String titles){ fragment fragment0 = new fragment(); Bundle bundle = new Bundle(); bundle.putString("sss",titles); fragment0.setArguments(bundle); return fragment0; }}
fragment2.java
import android.os.AsyncTask;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.annotation.Nullable;import android.support.v4.app.Fragment;import android.support.v4.view.PagerAdapter;import android.support.v4.view.ViewPager;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.ListView;import android.widget.TextView;import com.google.gson.Gson;import com.handmark.pulltorefresh.library.PullToRefreshBase;import com.handmark.pulltorefresh.library.PullToRefreshListView;import com.nostra13.universalimageloader.core.ImageLoader;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.MalformedURLException;import java.net.URL;import java.net.URLConnection;import java.util.ArrayList;import java.util.List;public class fragment2 extends Fragment { private PullToRefreshListView pt; private StringBuilder builder; int i = 1; private ptdata ptdata; private List<Bean.NewslistBean> newslist; List<User> list = new ArrayList<User>(); private ViewHolder vh; private ViewPager vp; private LinearLayout ll; private View view; private ArrayList<ImageView> imagelist; private ImageView view1; Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); int i = vp.getCurrentItem() + 1; vp.setCurrentItem(i); handler.sendEmptyMessageDelayed(0, 2000); } }; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { view = inflater.inflate(R.layout.fragment, container, false); return view; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); pt = (PullToRefreshListView) view.findViewById(R.id.pt); //绘制viewPager子布局 View view = View.inflate(getActivity(), R.layout.vp, null); //获取控件 vp = (ViewPager) view.findViewById(R.id.vp); ll = (LinearLayout) view.findViewById(R.id.ll); //添加头布局 ListView listView = pt.getRefreshableView(); listView.addHeaderView(view); pt.setMode(PullToRefreshBase.Mode.BOTH); //适配器 ptdata = new ptdata(); pt.setAdapter(ptdata); handler.sendEmptyMessageDelayed(0, 2000); //异步线程操作 new Mysanysk().execute("https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10"); //pt监听 //上拉下拉 pt.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() { @Override public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) { i = 1; new Mysanysk().execute("https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10"); } @Override public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) { i++; new Mysanysk().execute("https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10" + i); } }); vp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { for (int i = 0; i < imagelist.size(); i++) { if (position % newslist.size() == i) { imagelist.get(position % newslist.size()).setImageResource(R.drawable.dot_focuable); } else { imagelist.get(i).setImageResource(R.drawable.dot_normal); } } } @Override public void onPageScrollStateChanged(int state) { } }); } //加点 private void nodata() { ll.removeAllViews(); imagelist = new ArrayList<ImageView>(); if (imagelist != null) { imagelist.clear(); } for (int i = 0; i < newslist.size(); i++) { view1 = new ImageView(getActivity()); if (i == vp.getCurrentItem()) { view1.setImageResource(R.drawable.dot_focuable); } else { view1.setImageResource(R.drawable.dot_normal); } LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(20, 20); params.setMargins(10, 0, 10, 0); imagelist.add(view1); ll.addView(view1, params); } } //第一步 //异步 class Mysanysk extends AsyncTask<String, Void, String> { //读取数据 @Override protected String doInBackground(String... strings) { try { URL url = new URL(strings[0]); try { URLConnection connection = url.openConnection(); InputStream stream = connection.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(stream)); builder = new StringBuilder(); String tem = ""; while ((tem = reader.readLine()) != null) { builder.append(tem); } } catch (IOException e) { e.printStackTrace(); } } catch (MalformedURLException e) { e.printStackTrace(); } Log.e("=======读取到的数据==========", builder.toString()); return builder.toString(); } //解析数据 @Override protected void onPostExecute(String s) { super.onPostExecute(s); Gson gson = new Gson(); Bean bean = gson.fromJson(builder.toString(), Bean.class); newslist = bean.getNewslist(); for (int i = 0; i < newslist.size(); i++) { String picUrl = newslist.get(i).getPicUrl(); String title = newslist.get(i).getTitle(); list.add(new User(title, picUrl)); } vp.setAdapter(new vpdata()); nodata(); ptdata.notifyDataSetChanged(); pt.onRefreshComplete(); } } //pt的适配器 class ptdata 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; } @Override public View getView(int i, View view, ViewGroup viewGroup) { if (view == null) { vh = new ViewHolder(); view = View.inflate(getActivity(), R.layout.textview, null); vh.name = (TextView) view.findViewById(R.id.name); vh.img = (ImageView) view.findViewById(R.id.img); view.setTag(vh); } else { vh = (ViewHolder) view.getTag(); } vh.name.setText(list.get(i).name); ImageLoader.getInstance().displayImage(list.get(i).url, vh.img); return view; } } class ViewHolder { TextView name; ImageView img; } //vp的适配器 class vpdata extends PagerAdapter { private View view; @Override public int getCount() { return Integer.MAX_VALUE; } @Override public boolean isViewFromObject(View view, Object object) { return view == object; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); //super.destroyItem(container, position, object); } @Override public Object instantiateItem(ViewGroup container, int position) { String picUrl = newslist.get(position % newslist.size()).getPicUrl(); view = View.inflate(getActivity(), R.layout.vptextview, null); ImageView img = (ImageView) view.findViewById(R.id.img2); ImageLoader.getInstance().displayImage(picUrl, img); container.addView(view); return view; } }}
Appi.java 在权限中加 name=“.Appi”
import android.app.Application;import com.nostra13.universalimageloader.core.ImageLoader;import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;public class Appi extends Application { @Override public void onCreate() { super.onCreate(); ImageLoaderConfiguration build = new ImageLoaderConfiguration.Builder(this).build(); ImageLoader.getInstance().init(build); }}
User.java
public class User { public String name; public String url; public User(String name, String url) { this.name = name; this.url = url; } @Override public String toString() { return "User{" + "name='" + name + '\'' + ", url='" + url + '\'' + '}'; }}
User2.java
public class User2 { public String name; public String imgg; public User2(String name, String imgg) { this.name = name; this.imgg = imgg; } @Override public String toString() { return "User2{" + "name='" + name + '\'' + ", imgg='" + imgg + '\'' + '}'; }}
阅读全文
0 0
- XListView+ PullToRefreshListView+ViewPager
- XListView+ViewPager
- 自定义控件(PullToRefreshListView,XListView)的原理
- 实现XlistView的简洁方法PullToRefreshListView
- Viewpager+XListView+Internet
- ViewPager,XListView主Activity
- XListView+ViewPager+SQLite
- Viewpager+Fragment+Xlistview
- viewpager 与 Xlistview
- PullToRefreshListView+ViewPager无限轮播
- ViewPager无限轮播+PullTOrefreshListView
- VIewPager+XListView+RadioButton实现布局
- ViewPager无限轮播加XListview加载
- XListView+ViewPager+上拉下拉
- 简单PullToRefreshListView+ViewPager无限轮播
- fragment+Xlistview+viewpager无限轮播+imageloader
- ViewPager给图片加点事件和XListView
- json进行缓存+ViewPager+onRefresh+XlistView
- java中的垃圾回收器(GC)
- Java日期格式Check
- 解决Jsoup解析html页面空格( )解析为乱码(问号)
- iOS之view的背景绘制渐变色、文字渐变
- 复杂密码生成工具apg
- XListView+ PullToRefreshListView+ViewPager
- 引用单元测试模块unittest框架(三)
- 【Python-2.7】删除空格
- 探讨跨域请求资源的几种方式
- 史上最全的随机数生成java算法
- 判断是不是汉字,辨别纯数字 cocos2d-js
- CSS布局及浮动
- AngularJS实现对用户信息的增删改查
- 关于PL、sql配置出现的问题