20171202小Dome

来源:互联网 发布:手机系统检测软件 编辑:程序博客网 时间:2024/06/07 02:31
public class DBUtils {    private static volatile DBUtils instance;    private final BeanDao dao;   //gen中的...Dao类    private DBUtils(Context context) {        DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(context, "poss", null);        SQLiteDatabase database = helper.getWritableDatabase();        DaoMaster daoMaster = new DaoMaster(database);        DaoSession daoSession = daoMaster.newSession();        dao = daoSession.getBeanDao();   //gen中的...Dao类的方法    }    public static DBUtils getInstance(Context context){        if (instance == null) {            synchronized (DBUtils.class) {                if (null == instance) {                    instance = new DBUtils(context);                }            }        }        return instance;    }    public BeanDao getDao(){        return dao;         //返回    }}
public interface ApiService {    @GET("api/data/Android/{page}/{num}")   //有些路径和参数放这    Call<Bean1<List<Bean2>>> get(@Path("page") int page, @Path("num") int num);}
//M层public class RetorfidUtils {    private Retrofit retrofit;    private static volatile RetorfidUtils retrofitutils;    private RetorfidUtils(String baseurl){        retrofit = new Retrofit.Builder()                .addConverterFactory(GsonConverterFactory.create())                .baseUrl(baseurl)                .build();    }    public static RetorfidUtils getInstence(String url){        if(null==retrofitutils){            synchronized (RetorfidUtils.class){                if(retrofitutils==null){                    retrofitutils = new RetorfidUtils(url);                }            }        }        return retrofitutils;    }    public void get(final Mview mview,int page,int num){        ApiService aClass = retrofit.create(ApiService.class);        Call<Bean1<List<Bean2>>> call = aClass.get(page, num);        call.enqueue(new Callback<Bean1<List<Bean2>>>() {            @Override            public void onResponse(Call<Bean1<List<Bean2>>> call, Response<Bean1<List<Bean2>>> response) {                Bean1<List<Bean2>> body = response.body();                Log.e("adfsatstg",body.toString());                mview.Success(body);            }            @Override            public void onFailure(Call<Bean1<List<Bean2>>> call, Throwable t) {                    mview.Failed(t);            }        });    }}
//P层public class Presenter {    private IView iView;    public void AtthView(IView iView){        this.iView = iView;    }    public void get(String url,int page,int num){        RetorfidUtils.getInstence(url).get(new Mview() {            @Override            public void Success(Object o) {                iView.onSueecss(o);                Log.e("13841351865468",o.toString());            }            @Override            public void Failed(Throwable t) {                iView.onFailed(t);            }        },page,num);    }}
public class Fragment01 extends Fragment implements IView{    private List<Bean> list;    @BindView(R.id.recyc)    RecyclerView recyc;    private RAdapter adapter;    private BeanDao dao;    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        View view = View.inflate(getActivity(), R.layout.fragment01, null);        ButterKnife.bind(this, view);        return view;    }    @Override    public void onActivityCreated(@Nullable Bundle savedInstanceState) {        super.onActivityCreated(savedInstanceState);        list = new ArrayList<Bean>();        LinearLayoutManager manager=new LinearLayoutManager(getActivity());        recyc.setLayoutManager(manager);        adapter = new RAdapter(getActivity(),list);        recyc.setAdapter(adapter);        dao = DBUtils.getInstance(getActivity()).getDao();        //判断有没有数据        put();    }    @Override    public void onSueecss(Object o) {        Bean1<List<Bean2>> personBean=(Bean1<List<Bean2>>) o;        List<Bean2> results = personBean.getResults();        //循环添加到数据库        for (int i=0;i<results.size();i++){            Bean bean = new Bean();            bean.setName(results.get(i).getDesc());            List<String> images = results.get(i).getImages();            if(images==null||images.size()==0){            }else {                bean.setImg(images.get(0));            }            dao.insertOrReplace(bean);        }        put();    }    @Override    public void onFailed(Throwable t) {    }    public  void put(){        List<Bean> been = dao.loadAll();        if(been==null||been.size()==0){            Presenter presenter=new Presenter();            presenter.AtthView(this);            presenter.get("http://gank.io/",10,1);        }else {            list.clear();            list.addAll(been);            adapter.notifyDataSetChanged();        }    }}
原创粉丝点击