java
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
package com.example.jacklee.myyuekaomoni.db; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import com.example.jacklee.myyuekaomoni.bean.News; import com.example.jacklee.myyuekaomoni.bean.NwsShuJuku; public class ShowDao { private final ShowHelper showHelper; private final SQLiteDatabase db; public ShowDao(Context context) { showHelper = new ShowHelper(context); db = showHelper.getWritableDatabase(); } public void insert(NwsShuJuku bean){ ContentValues values = new ContentValues(); values.put("url", bean.url); values.put("json",bean.json); db.replace("bwei",null,values); } public NwsShuJuku query(String url){ NwsShuJuku bean = null; Cursor cursor = db.rawQuery("select * from bwei where url = ?", new String[]{url}); if (cursor.moveToNext()){ bean = new NwsShuJuku(); bean.url = cursor.getString(cursor.getColumnIndex("url")); bean.json = cursor.getString(cursor.getColumnIndex("json")); } return bean; } }
helper
package com.example.jacklee.myyuekaomoni.db; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; class ShowHelper extends SQLiteOpenHelper { public ShowHelper(Context context) { super(context,"bwei.db",null,1); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("create table bwei(id Integer primary key autoincrement , url TEXT , json TEXT)"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } }