加权限 compile 'com.android.support:recyclerview-v7:28.+' compile 'com.squareup.retrofit2:retrofit:2.0.0' compile 'com.squareup.retrofit2:converter-gson:2.0.2' compile 'io.reactivex.rxjava2:rxjava:2.0.0-RC3' compile 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0-RC3' compile 'io.reactivex.rxjava2:rxandroid:2.0.0-RC1' compile 'com.squareup.okio:okio:1.5.0' implementation 'com.android.support:support-v4:28.0.0-rc01' compile 'com.squareup.okhttp3:okhttp:3.4.2' compile 'com.squareup.okhttp3:logging-interceptor:3.4.1' compile 'com.facebook.fresco:fresco:0.9.0+' compile 'org.greenrobot:greendao:3.0.1' compile 'org.greenrobot:greendao-generator:3.0.0'
//api public static String URL ="https://www.zhaoapi.cn/";
//apiservice
@GET("product/getCatagory") Flowable<ShowBean> getShowview(); @GET("product/getProductCatagory") Flowable<GoodsBean> getGoodsview(@Query("page") int page); @GET("product/searchProducts") Flowable<ShangBean> getShangview(@Query("keysword") String keysword, @Query("page") int page);
//application
@Override public void onCreate() { super.onCreate(); instance = this; Fresco.initialize(this); setDB(); }
//Inter
public interface SetonInter { void OnData(ShowBean showBean); }
model
public interface IShowModel { void getData(SetonInter setonInter); }
@Override public void getData(final SetonInter setonInter) { HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { @Override public void log(String message) { Log.i("sssssss", "日志信息" + message); } }); interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); OkHttpClient client = new OkHttpClient.Builder() .addInterceptor(interceptor) .connectTimeout(5000, TimeUnit.SECONDS) .writeTimeout(5000, TimeUnit.SECONDS) .readTimeout(5000, TimeUnit.SECONDS) .build(); Retrofit builder = new Retrofit.Builder() .baseUrl(api.URL) .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) .client(client) .build(); apiService apiService = builder.create(apiService.class); Flowable<ShowBean> showview = apiService.getShowview(); showview.subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new DisposableSubscriber<ShowBean>() { @Override public void onNext(ShowBean showBean) { setonInter.OnData(showBean); } @Override public void onError(Throwable t) { } @Override public void onComplete() { } }); }
persenter
public interface IPensenter { void getData(); }
public class Pensenter implements IPensenter,SetonInter{ IShowView iShowView; ShowModel showModel; public Pensenter(IShowView iShowView) { showModel = new ShowModel(); this.iShowView = iShowView; } @Override public void OnData(ShowBean showBean) { iShowView.showData(showBean); } @Override public void getData() { showModel.getData(this); } }
View
public interface IShowView { void showData(ShowBean showBean); }
baseactivity
public abstract class BaseActivity<T extends Pensenter> extends AppCompatActivity { private T presenter; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); //创建获取ID的方法 setContentView(getLayouId()); //创建presenten presenter= getpresenter(); //初始化视图 initView(); //初始化数据 initData(); } protected abstract void initData(); protected abstract void initView(); protected abstract T getpresenter(); protected abstract int getLayouId(); }
mainactivity
public class MainActivity extends BaseActivity<Pensenter> implements IShowView { Pensenter pensenter; private RecyclerView leftrecycler; private RecyclerView rightrecycler; @Override protected void initData() { } @Override protected void initView() { leftrecycler = findViewById(R.id.leftrecycler); rightrecycler = findViewById(R.id.rightrecycler); leftrecycler.setLayoutManager(new LinearLayoutManager(this)); } @Override protected Pensenter getpresenter() { pensenter = new Pensenter(this); pensenter.getData(); return pensenter; } @Override protected int getLayouId() { return R.layout.activity_main; } @Override public void showData(ShowBean showBean) { LeftAdapter leftAdapter = new LeftAdapter(this); leftAdapter.addData(showBean.getData()); leftrecycler.setLayoutManager(new LinearLayoutManager(this)); leftrecycler.setAdapter(leftAdapter); } }