网络请求+ xlistview + 添加到数据库+imageloader

xiaoxiao2025-10-08  9

上代码

package com.example.yuekaoone.fragment; import android.app.Fragment; import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.os.AsyncTask; import android.util.Log; import android.view.View; import android.widget.ListView; import android.widget.Toast; import com.example.mylibrary.me.maxwin.view.XListView; import com.example.yuekaoone.R; import com.example.yuekaoone.adapter.ListViewAdapter; import com.example.yuekaoone.bean.Bean; import com.example.yuekaoone.bean.Convers; import com.example.yuekaoone.bean.Shu; import com.example.yuekaoone.dao.Dao; import com.example.yuekaoone.dao.GetHttp; import java.util.List; public class B1Fragment extends BaseFragment { XListView listview; String url="http://www.xieast.com/api/news/news.php?page="; int page = 1; Dao dao; ListViewAdapter adapter; @Override protected void inintdata(View view) { listview.setXListViewListener(new XListView.IXListViewListener() { @Override public void onRefresh() { page = 1; loaddata(page); } @Override public void onLoadMore() { page = page+1; loaddata(page); } }); listview.setPullLoadEnable(true); adapter = new ListViewAdapter(getActivity()); loaddata(page); listview.setAdapter(adapter); } @Override protected void inintView(View view) { listview = view.findViewById(R.id.listview); dao = new Dao(getActivity()); } @Override protected int setcontent() { return R.layout.fragment_b1; } public void loaddata(final int page){ if (!has()){ Toast.makeText(getActivity(), "没有网络", Toast.LENGTH_SHORT).show(); List<Shu> list11 = dao.cha(); adapter.setdata(Convers.db2response(list11)); }else{ new AsyncTask<String, Void, List<Bean.DataBean>>() { @Override protected List<Bean.DataBean> doInBackground(String... strings) { Bean bean= GetHttp.get(strings[0],Bean.class); return bean.getData(); } @Override protected void onPostExecute(List<Bean.DataBean> dataBeans) { super.onPostExecute(dataBeans); if (page==1){ adapter.setdata(dataBeans); }else{ adapter.adddata(dataBeans); } if(page == 1) { dao.delete(); Log.i("TEST", "after del count: " + dao.getDataCount()); } //添加到数据库 for (int i=0;i<dataBeans.size();i++){ dao.add(dataBeans.get(i).getAuthor_name(),dataBeans.get(i).getThumbnail_pic_s(),dataBeans.get(i).getThumbnail_pic_s02(),dataBeans.get(i).getThumbnail_pic_s03()); } Log.i("TEST", "count: " + dao.getDataCount()); listview.stopRefresh(); listview.stopLoadMore(); } }.execute(url+page); } } //判断网络 public boolean has() { //获取网络工具类 ConnectivityManager ss = (ConnectivityManager) getActivity().getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo info = ss.getActiveNetworkInfo(); //当有网并且可用 return info!=null&&info.isAvailable(); } }

布局

<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".fragment.AFragment"> <com.example.mylibrary.me.maxwin.view.XListView android:id="@+id/listview" android:layout_width="match_parent" android:layout_height="match_parent"></com.example.mylibrary.me.maxwin.view.XListView> </FrameLayout>

网络请求工具类

package com.example.yuekaoone.dao; import com.google.gson.Gson; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; public class GetHttp { public static <T> T get(String urlstring , Class c){ String ss = GetHttp.gethttp(urlstring); T t =(T) new Gson().fromJson(ss,c); return t; } public static String gethttp(String urlstring){ try { URL url = new URL(urlstring); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); urlConnection.setRequestMethod("GET"); urlConnection.setReadTimeout(5000); urlConnection.setConnectTimeout(5000); int responseCode = urlConnection.getResponseCode(); if (responseCode == 200){ String ss = streamString(urlConnection.getInputStream()); return ss; } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } private static String streamString(InputStream is) { StringBuilder sb = new StringBuilder(); BufferedReader reader = new BufferedReader(new InputStreamReader(is)); try { for (String temp = reader.readLine() ; temp !=null ; temp = reader.readLine()){ sb.append(temp); } } catch (IOException e) { e.printStackTrace(); }finally { try { reader.close(); } catch (IOException e) { e.printStackTrace(); } } return sb.toString(); } }

sqlite数据库创建以及使用

package com.example.yuekaoone.dao; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class MHelp extends SQLiteOpenHelper { public MHelp(Context context) { super(context, "user.db",null,1); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("create table users(id Integer,name text , img1 text, img2 text, img3 text)"); } @Override public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) { } } package com.example.yuekaoone.dao; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import com.example.yuekaoone.bean.Shu; import java.util.ArrayList; import java.util.List; public class Dao { //List<Shu> list = new ArrayList<>(); SQLiteDatabase database; public Dao(Context context) { MHelp mHelp = new MHelp(context); database = mHelp.getReadableDatabase(); } /* public void addAll(List<Shu> datas) { for (int i=0;i<datas.size();i++){ add(datas.get(i)); } } */ /* public void add(Shu data) { database.execSQL("insert into users(name,img1,img2,img3) values(?,?,?,?)",new String[]{data.getName(),data.getImg1(),data.getImg2(),data.getImg3()}); }*/ public void add(String name, String img1, String img2, String img3) { database.execSQL("insert into users(name,img1,img2,img3) values(?,?,?,?)",new String[]{name,img1,img2,img3}); } public int getDataCount() { int count = -1; Cursor cursor = database.query("users", new String[]{}, null, null, null, null, null); if(cursor.moveToNext()) { count = cursor.getCount(); } return count; } public List<Shu> cha() { // List<Shu> list = new ArrayList<>(); Cursor cursor = database.rawQuery("select * from users", null); while(cursor.moveToNext()){ String name = cursor.getString(cursor.getColumnIndex("name")); String img1 = cursor.getString(cursor.getColumnIndex("img1")); String img2 = cursor.getString(cursor.getColumnIndex("img2")); String img3 = cursor.getString(cursor.getColumnIndex("img3")); Shu shu =new Shu(name,img1,img2,img3); list.add(shu); } cursor.close(); return list; } public void delete() { database.execSQL("delete from users"); } }

imageloader

package com.example.yuekaoone.dao; import android.app.Application; import com.nostra13.universalimageloader.core.ImageLoader; import java.io.IOException; public class App extends Application { @Override public void onCreate() { super.onCreate(); try { ImageLoader.getInstance().init(new ImageLoaderConfigurationss().getcon(this)); } catch (IOException e) { e.printStackTrace(); } } } package com.example.yuekaoone.dao; import android.graphics.Bitmap; import android.os.Environment; import com.example.yuekaoone.R; import com.nostra13.universalimageloader.cache.disc.DiskCache; import com.nostra13.universalimageloader.cache.disc.impl.ext.LruDiskCache; import com.nostra13.universalimageloader.cache.disc.naming.FileNameGenerator; import com.nostra13.universalimageloader.cache.disc.naming.HashCodeFileNameGenerator; import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoaderConfiguration; import com.nostra13.universalimageloader.core.assist.ImageScaleType; import java.io.File; import java.io.IOException; public class ImageLoaderConfigurationss { public ImageLoaderConfiguration getcon(App app) throws IOException { return new ImageLoaderConfiguration.Builder(app) .memoryCacheSize(10) .diskCache(new LruDiskCache(new File(Environment.getExternalStorageDirectory(), "imgs"), new HashCodeFileNameGenerator(), 50*1024*1024)) //.diskCacheSize(50*1024*1024) .defaultDisplayImageOptions(DisplayImageOptions.createSimple()) .build(); //DiskCache //FileNameGenerator } public DisplayImageOptions getpo() { return new DisplayImageOptions.Builder() .cacheInMemory(true) .cacheOnDisk(true) .showImageForEmptyUri(R.mipmap.ic_launcher) .showImageOnFail(R.drawable.ic_launcher_background) .bitmapConfig(Bitmap.Config.RGB_565) .imageScaleType(ImageScaleType.EXACTLY_STRETCHED) .build(); } }
转载请注明原文地址: https://www.6miu.com/read-5037577.html

最新回复(0)