建数据库
public class sqlite extends SQLiteOpenHelper{
public sqlite(Context context) {super(context, "user", null, 2);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table user(id Integer primary key autoincrement,url text,json text)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
操作数据
public class dao {
private final com.appc.zonghe.sqlite sqlite;
private final SQLiteDatabase db;
public dao(Context context){
sqlite = new sqlite(context);
db = sqlite.getWritableDatabase();
}
public void insertData(String url,String jsonStr){
db.delete("user","url=?",new String[]{jsonStr});
db.execSQL("insert into user (url,json) values (?,?)",new Object[]{url,jsonStr});
}
public String getJson(String url){
Cursor rawQuery = db.rawQuery("select json from user where url=?",new String[]{url});
//将值存到当前的容器
StringBuffer stringBuffer = new StringBuffer();
//rawQuery.moveToNext() 游标向下
while (rawQuery.moveToNext()) {
String pass = rawQuery.getString(rawQuery.getColumnIndex("json"));
stringBuffer.append(pass);
}
return stringBuffer.toString();
}
}
activity
package com.appc.zonghe;
import android.content.Context;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
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.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.ScrollView;
import android.widget.TextView;
import android.widget.Toast;
import com.bwie.pulllibrary.utils.NetTypeUtil;
import com.bwie.pulllibrary.utils.NetWordUtils;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshScrollView;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.youth.banner.Banner;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class fragment1 extends Fragment {
private String[] images={"http://pic8.nipic.com/20100701/5290458_114840036316_2.jpg",//海
"http://pic2.nipic.com/20090424/1468853_230119053_2.jpg",//亭子
"http://img3.3lian.com/2013/s1/20/d/57.jpg",//白房子
"http://pic39.nipic.com/20140226/18071023_164300608000_2.jpg",//华
"http://a0.att.hudong.com/15/08/300218769736132194086202411_950.jpg"};
String url="http://www.93.gov.cn/93app/data.do?channelId=0&startNum=0";
private List<com.appc.zonghe.bean3.DataBean> list=new ArrayList<>();
private PullToRefreshScrollView plv;
private GridView gv;
private int gg=2;
private DisplayImageOptions options;
private String n;
private com.appc.zonghe.dao dao;
private Handler h=new Handler(){
@Override
public void handleMessage(Message msg) {
String ss = (String) msg.obj;
dao.insertData(url,ss);
}
};
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_fragment1, container, false);
plv = view.findViewById(R.id.plv);
gv = view.findViewById(R.id.gv);
Banner banner = view.findViewById(R.id.ba);
banner.setImageLoader(new dd());
//设置图片集合
banner.setImages(Arrays.asList(images));
//banner设置方法全部调用完毕时最后调用
banner.start();
dao = new dao(getActivity());
n = dao.getJson(url);
Log.e("xxx", "1");
Log.e("xxx", n+"");
if("".equals(n)){
if(NetTypeUtil.getNetype(getActivity())==-1){
Toast.makeText(getActivity(),"勿忘",Toast.LENGTH_SHORT).show();
}else{
intodata(url);
}
}else{
Toast.makeText(getActivity(),n,Toast.LENGTH_SHORT).show();
Gson gson=new Gson();
bean3 bean = gson.fromJson(n, bean3.class);
List<com.appc.zonghe.bean3.DataBean> data = bean.getData();
list.addAll(data);
gv.setAdapter(new Adapter());
}
plv.setMode(PullToRefreshBase.Mode.BOTH);
plv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ScrollView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ScrollView> pullToRefreshBase) {
if(NetTypeUtil.getNetype(getActivity())==-1){
Toast.makeText(getActivity(),"勿忘",Toast.LENGTH_SHORT).show();
plv.postDelayed(new Runnable() {
@Override
public void run() {
plv.onRefreshComplete();
}
},500);
}else{
plv.postDelayed(new Runnable() {
@Override
public void run() {
list.clear();
gg=2;
intodata(url);
plv.onRefreshComplete();
}
},500);
}
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<ScrollView> pullToRefreshBase) {
if(NetTypeUtil.getNetype(getActivity())==-1){
Toast.makeText(getActivity(),"勿忘",Toast.LENGTH_SHORT).show();
plv.postDelayed(new Runnable() {
@Override
public void run() {
plv.onRefreshComplete();
}
},500);
}else{
plv.postDelayed(new Runnable() {
@Override
public void run() {
gg++;
String ss="http://www.93.gov.cn/93app/data.do?channelId=0&startNum="+gg;
intodata(ss);
plv.onRefreshComplete();
}
},500);
}
}
});
return view;
}
private void intodata(String s) {
new Acy().execute(s);
}
//异步请求
class Acy extends AsyncTask<String,Void,String> {
@Override
protected String doInBackground(String... params) {
String param = params[0];
String netjson = NetWordUtils.getNetjson(param);
Message m=new Message();
m.obj=netjson;
h.sendMessage(m);
Log.e("xxx", netjson+"");
return netjson;
}
@Override
protected void onPostExecute(String s) {
Gson gson=new Gson();
bean3 bean = gson.fromJson(s, bean3.class);
List<com.appc.zonghe.bean3.DataBean> data = bean.getData();
list.addAll(data);
gv.setAdapter(new Adapter());
}
}
class Adapter extends BaseAdapter {
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
convertView=View.inflate(getActivity(),R.layout.item1,null);
TextView tv2 = convertView.findViewById(R.id.tv2);
ImageView im2 = convertView.findViewById(R.id.im2);
tv2.setText(list.get(position).getTITLE());
ImageLoader.getInstance().displayImage((String) list.get(position).getIMAGEURL(),im2,options);
return convertView;
}
}
}