有网络请求数据

xiaoxiao2025-10-26  12

dao

package com.example.yuekao;

import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase;

import java.util.ArrayList; import java.util.List;

public class Dao { SQLiteDatabase database;

public Dao(Context context) { Mhelper mhelper=new Mhelper(context); database=mhelper.getReadableDatabase(); } public void insert(String name,String image) { // TODO Auto-generated method stub database.execSQL("insert into web(name,image) values (?,?)", new Object[]{name,image}); } //查询方法 public ArrayList<ResponseBean.DataBean> select() { Cursor cursor = database.rawQuery("select * from web", null); StringBuilder stringBuilder = new StringBuilder(); ArrayList<ResponseBean.DataBean> list = new ArrayList<>(); while (cursor.moveToNext()){ String title = cursor.getString(cursor.getColumnIndex("name")); String image = cursor.getString(cursor.getColumnIndex("image")); ResponseBean.DataBean dataBean = new ResponseBean.DataBean(title,image); list.add(dataBean); } return list; }

}

Mhelper

package com.example.yuekao;

import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper;

class Mhelper extends SQLiteOpenHelper { public Mhelper(Context context) { super(context,“pin.db”,null,1); }

@Override public void onCreate(SQLiteDatabase db) { db.execSQL("create table web(id integer primary key autoincrement,name text,image text)"); } @Override public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) { }

}

Fragment

package com.example.yuekao;

import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.os.AsyncTask; import android.os.Bundle; import android.support.v4.app.Fragment; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Toast;

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; import java.net.URLConnection; import java.util.ArrayList; import java.util.List;

import me.maxwin.view.XListView;

public class Fragment1 extends Fragment {

private XListView xlv; MyAdapter myAdapter; String path; int page=1; private static Dao dao; private ArrayList<ResponseBean.DataBean> dblist; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view=inflater.inflate(R.layout.fragment_fragment1, container, false); xlv = view.findViewById(R.id.xlv); myAdapter=new MyAdapter(getLayoutInflater()); dao = new Dao(getContext()); initView(); return view; } private boolean hasNetWork(Context context){ ConnectivityManager connectivityManager= (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo info=connectivityManager.getActiveNetworkInfo(); if (info!=null){ return true; }else { ArrayList<ResponseBean.DataBean> select = dao.select(); myAdapter.setData(select); } return false; } private void initView() { xlv.setAdapter(myAdapter); xlv.setPullLoadEnable(true); xlv.setPullRefreshEnable(true); xlv.setXListViewListener(new XListView.IXListViewListener() { @Override public void onRefresh() { page=1; loadData(page); } @Override public void onLoadMore() { loadData(page); } }); loadData(page); } private void loadData(int page) { if (!hasNetWork(getActivity())) { return; }

path=“http://www.xieast.com/api/news/news.php?page=”+page; new AsyncTask<String, Void, List<ResponseBean.DataBean>>() { @Override protected List<ResponseBean.DataBean> doInBackground(String… strings) { ResponseBean responseBean=null; try { URL url=new URL(path); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); urlConnection.setRequestMethod(“GET”); urlConnection.setConnectTimeout(5000); urlConnection.setReadTimeout(5000); int responseCode = urlConnection.getResponseCode(); if (responseCode==200){ String str=stream2String(urlConnection.getInputStream()); responseBean = new Gson().fromJson(str, ResponseBean.class);

} return responseBean==null?null:responseBean.getData(); } catch (Exception e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(List<ResponseBean.DataBean> dataBeans) { super.onPostExecute(dataBeans); if (dataBeans==null){ Toast.makeText(getContext(),"qingqiu",Toast.LENGTH_LONG).show(); return; } initData(dataBeans); updaData(); } }.execute(path); } private void updaData() { page++; xlv.stopLoadMore(); xlv.stopRefresh(); } private void initData(List<ResponseBean.DataBean> dataBeans) { if (page==1){ myAdapter.setData(dataBeans); for (int i=0;i<dataBeans.size();i++){ dao.insert(dataBeans.get(i).getAuthor_name(),dataBeans.get(i).getThumbnail_pic_s()); } }else{ myAdapter.addData(dataBeans); for (int i=0;i<dataBeans.size();i++){ dao.insert(dataBeans.get(i).getAuthor_name(),dataBeans.get(i).getThumbnail_pic_s()); } } } private String stream2String(InputStream inputStream) throws IOException { BufferedReader br=new BufferedReader(new InputStreamReader(inputStream)); StringBuilder sb=new StringBuilder(); for (String tmp=br.readLine();tmp!=null;tmp=br.readLine()){ sb.append(tmp); } return sb.toString(); }

}

MyAdapter

package com.example.yuekao;

import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView;

import com.nostra13.universalimageloader.core.ImageLoader;

import java.util.ArrayList; import java.util.List;

public class MyAdapter extends BaseAdapter { LayoutInflater layoutInflater; List<ResponseBean.DataBean> list;

public MyAdapter(LayoutInflater layoutInflater) { this.layoutInflater = layoutInflater; list=new ArrayList<>(); } @Override public int getItemViewType(int position) { ResponseBean.DataBean data= (ResponseBean.DataBean) getItem(position); String iv1=data.getThumbnail_pic_s(); String iv2=data.getThumbnail_pic_s02(); String iv3=data.getThumbnail_pic_s03(); if(iv2==null&&iv3==null){ return 1; } return 0; } @Override public int getViewTypeCount() { return 2; } @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) { switch (getItemViewType(i)){ case 1: Holder holder=null; if (view==null){ holder=new Holder(); view=layoutInflater.inflate(R.layout.lv_item,null); holder.tv=view.findViewById(R.id.tv); holder.iv=view.findViewById(R.id.iv); view.setTag(holder); }else{ holder= (Holder) view.getTag(); } holder.tv.setText(list.get(i).getAuthor_name()); ImageLoader.getInstance().displayImage(list.get(i).getThumbnail_pic_s(),holder.iv); break; case 0: Holder1 holder1=null; if (view==null){ holder1=new Holder1(); view=layoutInflater.inflate(R.layout.lv_item1,null); holder1.tv=view.findViewById(R.id.tv); view.setTag(holder1); }else{ holder1= (Holder1) view.getTag(); } holder1.tv.setText(list.get(i).getAuthor_name()); break; } return view; } public void setData(List<ResponseBean.DataBean> dataBeans) { list=dataBeans; notifyDataSetChanged(); } public void addData(List<ResponseBean.DataBean> dataBeans) { list.addAll(dataBeans); notifyDataSetChanged(); } public void setNewData(List<ResponseBean.DataBean> dblist) { list=dblist; notifyDataSetChanged(); } class Holder{ ImageView iv; TextView tv; } class Holder1{ TextView tv; }

}

转载请注明原文地址: https://www.6miu.com/read-5038554.html

最新回复(0)