有网络请求数据

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;
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值