compile 'com.squareup.retrofit2:retrofit:2.3.0' compile 'com.squareup.retrofit2:converter-gson:2.3.0' compile 'com.android.support:recyclerview-v7:26.1.0' compile 'com.jakewharton:butterknife:8.8.1' annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1' compile 'com.facebook.fresco:fresco:1.5.0' compile 'org.greenrobot:eventbus:3.1.1' compile 'org.greenrobot:greendao:3.2.2' compile 'org.greenrobot:greendao:3.2.2' apply plugin: 'org.greenrobot.greendao' // apply plugin classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // add plugin greendao { schemaVersion 1 daoPackage 'test.bwie.com.lijianzkdemo.dao' targetGenDir 'src/main/java' }public interface ModelCallBack { public void success(Bean bean); public void failure(Exception e); }public class MyModl { public void getData(final ModelCallBack callBack){ Call<Bean> call= IApp.service.get("88f7bbc507e3ecacfaeab2b47dd8936f"); call.enqueue(new Callback<Bean>() { @Override public void onResponse(Call<Bean> call, Response<Bean> response) { Bean bean= response.body(); callBack.success(bean); //添加 IApp.session.getListBeanDao().insertInTx(bean.getResult().getList()); } @Override public void onFailure(Call<Bean> call, Throwable t) { callBack.failure(new Exception("")); } }); } public List<ListBean> getdb(DaoSession session){ List<ListBean> list = session.getListBeanDao().loadAll(); return list; } }public interface MyView { public void success(Bean bean); public void failure(Exception e); }public class MyPresenter { private MyView myView; private MyModl myModl; public MyPresenter(MyView myView) { this.myView = myView; this.myModl=new MyModl(); } public List<ListBean> getdb(){ List<ListBean> list = myModl.getdb(IApp.session); return list; } public void getData(){ myModl.getData(new ModelCallBack() { @Override public void success(Bean bean) { if (myView!=null){ myView.success(bean); } } @Override public void failure(Exception e) { if (myView!=null){ myView.failure(e); } } }); } }public class IApp extends Application { public static MyRetrofit service; public static DaoSession session; @Override public void onCreate() { super.onCreate(); Fresco.initialize(this); Retrofit retrofit = new Retrofit.Builder() .baseUrl("http://v.juhe.cn") .addConverterFactory(GsonConverterFactory.create()) .build(); service= retrofit.create(MyRetrofit.class); DaoMaster.DevOpenHelper helper= new DaoMaster.DevOpenHelper(this,"1203"); Database database= helper.getWritableDb(); session= new DaoMaster(database).newSession(); } }public class RecyclerviewAdapter extends RecyclerView.Adapter<RecyclerviewAdapter.IViewHolder>{ private Context context; private List<ListBean> list; public RecyclerviewAdapter(Context context) { this.context = context; } public void add(Bean bean){ if (list==null){ this.list=new ArrayList<>(); } list.addAll(bean.getResult().getList()); notifyDataSetChanged(); } public void addList(List bean) { if (list == null) { list = new ArrayList<>(); } list.addAll(bean); notifyDataSetChanged(); } @Override public RecyclerviewAdapter.IViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = View.inflate(context, R.layout.layout_item, null); return new IViewHolder(view); } @Override public void onBindViewHolder(RecyclerviewAdapter.IViewHolder holder, final int position) { holder.itemTv.setText(list.get(position).getTitle()); holder.simpleview.setImageURI(list.get(position).getFirstImg()); holder.itemTv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { EventBus.getDefault().postSticky(new EventBusBean(list.get(position).getTitle())); context.startActivity(new Intent(context,Main2Activity.class)); } }); } @Override public int getItemCount() { return list==null?0:list.size(); } static class IViewHolder extends RecyclerView.ViewHolder{ @BindView(R.id.simpleview) SimpleDraweeView simpleview; @BindView(R.id.item_tv) TextView itemTv; IViewHolder(View view) { super(view); ButterKnife.bind(this, view); } } }public interface MyRetrofit { //http://v.juhe.cn/weixin/query?key=88f7bbc507e3ecacfaeab2b47dd8936f @GET("weixin/query") Call<Bean> get(@Query("key") String key); }public class MainActivity extends AppCompatActivity implements MyView{ @BindView(R.id.recyclerview) RecyclerView recyclerview; private MyPresenter presenter; private RecyclerviewAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this); presenter= new MyPresenter(this); presenter.getData(); adapter= new RecyclerviewAdapter(this); LinearLayoutManager manager=new LinearLayoutManager(this); recyclerview.setLayoutManager(manager); recyclerview.setAdapter(adapter); List<ListBean> list1 = presenter.getdb(); if(list1 == null || list1.size() == 0){ presenter.getData(); }else { adapter.addList(list1); } List<ListBean> list = IApp.session.getListBeanDao().loadAll(); for (ListBean newslistBean : list) { System.out.println(newslistBean.toString()); } } @Override public void success(Bean bean) { adapter.add(bean); } @Override public void failure(Exception e) { } }
public class EventBusBean { private String title; public EventBusBean(String title) { this.title = title; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } }public class Main2Activity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); EventBus.getDefault().register(this); } @Subscribe(sticky = true) public void event(EventBusBean busBean){ Toast.makeText(this, ""+busBean.getTitle(), Toast.LENGTH_SHORT).show(); } @Override protected void onDestroy() { super.onDestroy(); EventBus.getDefault().unregister(this); } }
MVP+Retrofit+fresco+greendao+eventbus
最新推荐文章于 2018-12-20 15:22:52 发布