package com.bwie.monichengdanni; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; /** * 作者:AbnerMing * 日期:2018/9/21 */ public class DBHelper extends SQLiteOpenHelper{ public DBHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) { super(context, name, factory, version); } //创建数据库 @Override public void onCreate(SQLiteDatabase sqLiteDatabase) { sqLiteDatabase.execSQL("create table news (id integer primary key autoincrement,data text,items text)"); } @Override public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) { } }
============================================
public class DBUtils { private SQLiteDatabase db; public DBUtils(Context context){ DBHelper dbHelper=new DBHelper(context,"news.db",null,1); db=dbHelper.getWritableDatabase(); } //插入数据 public void insert(String data){ ContentValues values=new ContentValues(); values.put("data",data); db.insert("news",null,values); } public void insertItem(String data){ ContentValues values=new ContentValues(); values.put("items",data); db.insert("news",null,values); } public String queryItems(){ Cursor cu = db.rawQuery("select items from news", null); String data=""; while (cu.moveToNext()){ data=cu.getString(cu.getColumnIndex("items")); return data; } return data; } //查询 public String query(){ Cursor cu = db.rawQuery("select data from news", null); String data=""; while (cu.moveToNext()){ data=cu.getString(cu.getColumnIndex("data")); } return data; } }
====================================App
public class App extends Application { @Override public void onCreate() { super.onCreate(); ImageLoaderConfiguration configuration=new ImageLoaderConfiguration.Builder(this) .diskCache(new UnlimitedDiskCache(new File(getCacheDir().getAbsolutePath()))) .diskCacheSize(10*1024) .memoryCache(new LruMemoryCache(10*24)) .memoryCacheSize(10*1024) .build(); ImageLoader.getInstance().init(configuration); } }
==============================Show
public class Show extends Fengzhuang { private String dataul = "http://ftp6252741.host709.zhujiwu.me/abnerming/news_xl.txt"; private List<News.ItemsBean> list = new ArrayList<>(); private List<Fragment> fragments = new ArrayList<>(); private ViewPager pager; private MyAdtapter myAdtapter; private TabLayout tabLayout; private String[] pinyin={"top","shehui","guonei","guoji","yule","tiyu","junshi","keji","caijing","shishang"}; private DBUtils dbUtils; @Override public void inData() { tabLayout = (TabLayout) findViewById(R.id.tab); pager = (ViewPager) findViewById(R.id.pager); dbUtils=new DBUtils(this); myAdtapter = new MyAdtapter(getSupportFragmentManager()); pager.setAdapter(myAdtapter); tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE); tabLayout.setupWithViewPager(pager); doHttp(); } @Override public int getLayout() { return R.layout.show; } private class MyAdtapter extends FragmentPagerAdapter { public MyAdtapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { Fragment fragment = fragments.get(position); Bundle bundle = new Bundle(); bundle.putString("key", pinyin[position]); fragment.setArguments(bundle); return fragments.get(position); } @Override public int getCount() { return fragments.size(); } @Override public CharSequence getPageTitle(int position) { return list.get(position).getName(); } } private void doHttp() { if(!NetworkUtils.isConnected(this)){ String data=dbUtils.queryItems(); create(data); return; } new Hepler().get(dataul).result(new Hepler.HttpListener() { @Override public void success(String data) { dbUtils.insertItem(data); create(data); } }); } private void create(String data) { News bean = new Gson().fromJson(data, News.class); list = bean.getItems(); for (int a = 0; a < list.size(); a++) { fragments.add(new Framene()); } myAdtapter.notifyDataSetChanged(); } }
====================================Framene
package com.bwie.monichengdanni; import android.content.Intent; 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.AdapterView; import com.bwie.monichengdanni.tu.News; import com.bwie.monichengdanni.tu.Show; import com.example.xlistviewlib.XListView; import com.google.gson.Gson; import java.util.ArrayList; import java.util.List; public class Framene extends Fragment { private int page = 1; private XListView listView; private String key; private NewsAdapter newsAdapter; private List<New.DataBean> list = new ArrayList<>(); private List<New.DataBean> listAll = new ArrayList<>(); private DBUtils dbUtils; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.framnet, null, false); listView = (XListView) view.findViewById(R.id.view); dbUtils = new DBUtils(getActivity()); Bundle bundle = getArguments(); key = bundle.getString("key"); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { Intent intent = new Intent(getActivity(), Dr.class); intent.putExtra("url", list.get(i).getUrl()); startActivity(intent); } }); newsAdapter = new NewsAdapter(getActivity()); listView.setAdapter(newsAdapter); doHttp(page); listView.setPullRefreshEnable(true); listView.setPullLoadEnable(true); listView.setXListViewListener(new XListView.IXListViewListener() { @Override public void onRefresh() { listAll.clear(); page = 1; doHttp(page); listView.stopRefresh(); } @Override public void onLoadMore() { page++; doHttp(page); listView.stopLoadMore(); } }); return view; } private void doHttp(int page) { if (!NetworkUtils.isConnected(getActivity())) { //String data=getSharedPreferences("news", 0).getString("news",""); String data = dbUtils.query(); New bean = new Gson().fromJson(data, New.class); list = bean.getData(); listAll.addAll(list); newsAdapter.setList(listAll); return; } String dataurl = "http://www.xieast.com/api/news/news.php?type=" + key + "&page=" + page; new Hpler().get(dataurl).result(new Hpler.Httlistlin() { @Override public void suucss(String data) { //SharedPreferences sp = getSharedPreferences("news", 0); // sp.edit().putString("news",data).commit(); dbUtils.insert(data); New bean = new Gson().fromJson(data, New.class); list = bean.getData(); listAll.addAll(list); newsAdapter.setList(listAll); } }); } }
================================适配器
public class NewsAdapter extends BaseAdapter { private Context context; public NewsAdapter(Context context) { this.context = context; } private List<New.DataBean> list = new ArrayList<>(); public void setList(List<New.DataBean> list) { this.list = list; notifyDataSetChanged(); } @Override public int getViewTypeCount() { return 2; } @Override public int getItemViewType(int position) { int type = 0; if (list.get(position).getThumbnail_pic_s() != null && list.get(position).getThumbnail_pic_s02() != null && list.get(position).getThumbnail_pic_s03() != null) { type = 1; } return type; } @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) { int type = getItemViewType(i); ViewHolder1 viewHolder1; ViewHolder2 viewHolder2; DisplayImageOptions options=new DisplayImageOptions.Builder() .cacheOnDisk(true) .cacheInMemory(true) .build(); switch (type) { case 0: if (view == null) { view = View.inflate(context, R.layout.lay1, null); viewHolder1 = new ViewHolder1(); viewHolder1.img = (ImageView) view.findViewById(R.id.news_pic); viewHolder1.men1 = (TextView) view.findViewById(R.id.news_desc); view.setTag(viewHolder1); } else { viewHolder1 = (ViewHolder1) view.getTag(); } New.DataBean bean = list.get(i); if (bean.getThumbnail_pic_s() != null) { ImageLoader.getInstance().displayImage(bean.getThumbnail_pic_s(), viewHolder1.img); } else { viewHolder1.img.setImageResource(R.mipmap.ic_launcher); } viewHolder1.men1.setText(bean.getTitle()); break; case 1: if (view == null) { view = View.inflate(context, R.layout.lay3, null); viewHolder2 = new ViewHolder2(); viewHolder2.img1 = (ImageView) view.findViewById(R.id.img1); viewHolder2.img2 = (ImageView) view.findViewById(R.id.img2); viewHolder2.img3 = (ImageView) view.findViewById(R.id.img3); view.setTag(viewHolder2); } else { viewHolder2 = (ViewHolder2) view.getTag(); } New.DataBean bean1 = list.get(i); ImageLoader.getInstance().displayImage(bean1.getThumbnail_pic_s03(), viewHolder2.img1); ImageLoader.getInstance().displayImage(bean1.getThumbnail_pic_s(), viewHolder2.img2); ImageLoader.getInstance().displayImage(bean1.getThumbnail_pic_s02(), viewHolder2.img3); break; } return view; } class ViewHolder1 { ImageView img; TextView men1; } class ViewHolder2 { ImageView img1, img2, img3; } }