當前位置:
首頁 > 知識 > Gson+pulltorefer+資料庫+httpurlconnection+非同步(更新)

Gson+pulltorefer+資料庫+httpurlconnection+非同步(更新)

package com.example.jacklee.myyuekaomoni.fragement; import android.annotation.SuppressLint; import android.content.Context; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.support.v4.view.ViewPager; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ScrollView; import android.widget.Toast; import com.example.jacklee.myyuekaomoni.R; import com.example.jacklee.myyuekaomoni.addapter.MyAdapter; import com.example.jacklee.myyuekaomoni.addapter.MyPagerAdaper; import com.example.jacklee.myyuekaomoni.bean.News; import com.example.jacklee.myyuekaomoni.bean.NewsBean; import com.example.jacklee.myyuekaomoni.bean.NwsShuJuku; import com.example.jacklee.myyuekaomoni.db.NetUtis; import com.example.jacklee.myyuekaomoni.db.ShowDao; import com.example.jacklee.myyuekaomoni.httputis.HttpUrlConnection; import com.example.jacklee.myyuekaomoni.httputis.HttpUrlConnection02; import com.example.jacklee.myyuekaomoni.zidingyi.MyListView; import com.example.jacklee.myyuekaomoni.zidingyi.MyViewPager; import com.google.gson.Gson; import com.handmark.pulltorefresh.library.PullToRefreshBase; import com.handmark.pulltorefresh.library.PullToRefreshScrollView; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.utils.L; import java.util.ArrayList; import java.util.HashSet; import java.util.List; public class Fragment_shouye extends Fragment { private HttpUrlConnection02 httpUrlConnection02= HttpUrlConnection02.getInstance(); private HttpUrlConnection httpUrlConnection = HttpUrlConnection.getInstance(); private MyViewPager MyView_pager; private String uuu="http://ttpc.dftoutiao.com/jsonpc/refresh?type="; private LinearLayout main_ll_points; private int page = 5010; private MyListView Mylist_view; private PullToRefreshScrollView pull_to_refresh; private String url = "http://www.xieast.com/api/banner.php"; @SuppressLint("HandlerLeak") private Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); if (msg.what==0){ int i = MyView_pager.getCurrentItem(); i++; MyView_pager.setCurrentItem(i); handler.sendEmptyMessageDelayed(0,1000); } } }; private List<ImageView> list; private List<ImageView> list_lqs; private List<NewsBean.DataBean> list_dtm; private MyAdapter myAdapter; private ShowDao showDao; public Fragment_shouye() { } @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View inflate = inflater.inflate(R.layout.fragment_shouye, container, false); initView(inflate); return inflate; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); getViewPager(); showDao = new ShowDao(getActivity()); NwsShuJuku query = showDao.query(uuu + page); if (query!=null){ getData01(query.json); }else{ if (NetUtis.isNetConnect(getActivity())){ getListDataFromNet(); } else{ //吐司 } } pull_to_refresh.setMode(PullToRefreshBase.Mode.BOTH); pull_to_refresh.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ScrollView>() { @Override public void onPullDownToRefresh(PullToRefreshBase<ScrollView> refreshView) { page = 5010; getListDataFromNet(); } @Override public void onPullUpToRefresh(PullToRefreshBase<ScrollView> refreshView) { page++; getListDataFromNet(); } }); MyView_pager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { position = position% list.size(); for (int i = 0; i <list_lqs.size() ; i++) { if (i==position){ list_lqs.get(i).setSelected(true); }else{ list_lqs.get(i).setSelected(false); } } } @Override public void onPageScrollStateChanged(int state) { } }); } private void getData02(String json){ showDao.insert(new NwsShuJuku(uuu+page,json)); getData01(json); } private void getData01(String json){ Gson gson = new Gson(); String json01 = json.replace("null(", "").replace(")", ""); NewsBean newsBean = gson.fromJson(json01, NewsBean.class); list_dtm = new ArrayList<>(); List<NewsBean.DataBean> data = newsBean.getData(); list_dtm.addAll(data); HashSet hashSet = new HashSet(list_dtm); list_dtm.clear(); list_dtm.addAll(hashSet); myAdapter = new MyAdapter(list_dtm,getActivity()); Mylist_view.setAdapter(myAdapter); myAdapter.notifyDataSetChanged(); //關閉頭布局和腳布局 pull_to_refresh.onRefreshComplete(); } private void getlqs(String json){ Gson gson = new Gson(); News news = gson.fromJson(json, News.class); list = new ArrayList<>(); list_lqs = new ArrayList<>(); List<News.DataBean> data = news.getData(); for (int i = 0; i <data.size() ; i++) { String url01 = data.get(i).getImg(); ImageView imageView = new ImageView(getActivity()); imageView.setScaleType(ImageView.ScaleType.FIT_XY); ImageLoader.getInstance().displayImage(url01,imageView); list.add(imageView); //添加小圓點 ImageView pion = new ImageView(getActivity()); pion.setImageResource(R.drawable.yuandian); LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(20, 20); layoutParams.rightMargin=10; layoutParams.leftMargin=10; list_lqs.add(pion); main_ll_points.addView(pion,layoutParams); } MyPagerAdaper myPagerAdaper = new MyPagerAdaper(list); MyView_pager.setAdapter(myPagerAdaper); MyView_pager.setCurrentItem(list.size()*1000); handler.sendEmptyMessageDelayed(0,1000); } private void getListDataFromNet() { httpUrlConnection02.getdata(page); httpUrlConnection02.setHttpListenter(new HttpUrlConnection02.HttpListenter() { @Override public void getJsonData(String json) { getData02(json); } }); } private void getViewPager() { httpUrlConnection.getData(url); httpUrlConnection.setHttpListenter(new HttpUrlConnection.HttpListenter() { @Override public void getJsonData(String json) { getlqs(json); } }); } private void initView(View inflate) { MyView_pager = (MyViewPager) inflate.findViewById(R.id.MyView_pager); main_ll_points = (LinearLayout) inflate.findViewById(R.id.main_ll_points); Mylist_view = (MyListView) inflate.findViewById(R.id.Mylist_view); pull_to_refresh = (PullToRefreshScrollView) inflate.findViewById(R.id.pull_to_refresh); } @Override public void onPause() { super.onPause(); handler.removeCallbacksAndMessages(null); } } dao

Gson+pulltorefer+資料庫+httpurlconnection+非同步(更新)

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序員小新人學習 的精彩文章:

github pages + hexo 構建自己的網站
函數節流(throttle)與函數去抖(debounce)

TAG:程序員小新人學習 |