mvp+Retrofit+rxj+greendao的数据请求和增查

来源:互联网 发布:凯利指数软件 编辑:程序博客网 时间:2024/06/14 05:16

一:Retrofit的请求接口

public interface GetRequest_Interface {    @GET("yunifang/mobile/category/list?random=96333&encode=bf3386e14fe5bb0bcef234baebca2414")    Observable<MyBean> getdata();}

二:view层

public interface Iview {    void giveData(MyBean bean);}

三:model层

//model的接口public interface IModel {    void getData(Observer<MyBean> observer);}//实现类public class Model implements IModel{    private String path="http://m.yunifang.com/";    @Override    public void getData(Observer<MyBean> observer) {        Retrofit retrofit = new Retrofit.Builder()                .addConverterFactory(GsonConverterFactory.create(new Gson()))                .addCallAdapterFactory(RxJavaCallAdapterFactory.create())//新的配置                .baseUrl(path)                .build();        GetRequest_Interface requestInterface = retrofit.create(GetRequest_Interface.class);        requestInterface.getdata()                .subscribeOn(Schedulers.io())                .observeOn(AndroidSchedulers.mainThread())                .subscribe(observer);    }}

四:present

public class MyPresent {    Iview view;    Model model;    public MyPresent(Iview view) {        this.view = view;        model=new Model();    }    public void show(){        model.getData(new Observer<MyBean>() {            @Override            public void onCompleted() {            }            @Override            public void onError(Throwable e) {                Log.d("xx","sssss"+e.getMessage());            }            @Override            public void onNext(MyBean bean) {                Log.d("xx", "onNext: "+bean.getCode());                view.giveData(bean);                //存入greendao                GBeanDao gBeanDao = App.getInstances().getDaoSession().getGBeanDao();                for(int i=0;i<bean.getData().getGoodsBrief().size();i++){                    gBeanDao.insert(new GBean(i+1,bean.getData().getGoodsBrief().get(i).getGoods_name(),bean.getData().getGoodsBrief().get(i).getId()));                }            }        });    }}

六:activity

public class MainActivity extends AppCompatActivity implements Iview{    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        MyPresent myPresent = new MyPresent(this);        myPresent.show();    }    @Override    public void giveData(final MyBean bean) {        Toast.makeText(MainActivity.this,bean.getData().getGoodsBrief().get(0).getId(),Toast.LENGTH_SHORT).show();        //查询greendao        GBeanDao gBeanDao = App.getInstances().getDaoSession().getGBeanDao();        List<GBean> gBeen = gBeanDao.loadAll();        for (GBean b : gBeen) {            Log.i("xx",b.getTitle().toString());        }    }}
原创粉丝点击