抽基类+MVP+Retrofit+Rxjava+适配器+Recyclerview展示数据

1 篇文章 0 订阅
1 篇文章 0 订阅

implementation 'com.jakewharton:butterknife:8.8.1'
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
//轮播图
    implementation 'com.youth.banner:banner:1.4.10'
//Fresco
    implementation 'com.facebook.fresco:fresco:1.9.0'
// Fresco 支持 GIF 动图,需要添加
    implementation 'com.facebook.fresco:animated-gif:1.9.0'
    implementation 'com.facebook.fresco:imagepipeline-okhttp3:0.11.0'
//依赖begin
    implementation 'com.google.code.gson:gson:2.8.5'
//刷新的第三方
    implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.0.5.1'
    implementation 'com.scwang.smartrefresh:SmartRefreshHeader:1.0.5.1'
//RecyclerView
    implementation 'com.android.support:recyclerview-v7:28.0.0-alpha3'
    implementation 'com.android.support:design:28.0.0-alpha3'
//RecyclerView 上啦加载下拉刷新 https://github.com/XRecyclerView/XRecyclerView
    implementation('com.jcodecraeer:xrecyclerview:1.5.9') {
        exclude group: 'com.android.support'
    }
//状态栏
    implementation 'com.jaeger.statusbarutil:library:1.5.1'
//网络请求重要的依赖
//Retrofit
    implementation 'com.squareup.retrofit2:retrofit:2.1.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.1.0'
//rxjava
    implementation 'com.squareup.retrofit2:adapter-rxjava2:2.2.0'
    implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'
//日志拦截器
    implementation 'com.squareup.okhttp3:logging-interceptor:3.6.0'
    implementation 'com.squareup.okhttp3:okhttp:3.5.0'
//ButterKnife
    implementation 'com.jakewharton:butterknife:8.8.1'
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
//跑马灯
    implementation 'com.sunfusheng:marqueeview:1.3.3'
//Glide 加载图片
    implementation 'com.github.bumptech.glide:glide:4.7.1'
//GreenDao
    implementation 'org.greenrobot:greendao:3.0.1'
    implementation 'org.greenrobot:greendao-generator:3.0.0'

 

 

 

 

 

package com.baiwei.tianlong.zhoukao_moni.adapter;

import android.content.Context;
import android.net.Uri;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import com.baiwei.tianlong.zhoukao_moni.R;
import com.baiwei.tianlong.zhoukao_moni.mvp.main.model.beans.LieBiaoBeans;
import com.facebook.drawee.view.SimpleDraweeView;

import java.util.List;

import butterknife.BindView;
import butterknife.ButterKnife;

public class LieBiaoAdapter extends RecyclerView.Adapter<LieBiaoAdapter.LieBiaoHolder> {

    private List<LieBiaoBeans.DataBean> data;
    private Context context;

    public LieBiaoAdapter(List<LieBiaoBeans.DataBean> data, Context context) {
        this.data = data;
        this.context = context;
    }

    @NonNull
    @Override
    public LieBiaoHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View view = LayoutInflater.from(viewGroup.getContext())
                .inflate(R.layout.liebiao, viewGroup, false);
        return new LieBiaoHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull LieBiaoHolder lieBiaoHolder, final int i) {
        String name = data.get(i).getName();
        String createtime = data.get(i).getCreatetime();
        String icon = data.get(i).getIcon();

        lieBiaoHolder.frescoLiebiao.setImageURI(Uri.parse(icon));
        lieBiaoHolder.liebiaoText.setText(name);
        lieBiaoHolder.liebiaoText1.setText(createtime);

        lieBiaoHolder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (onItemLieBiaoInstance!=null){
                   onItemLieBiaoInstance.onItemClick(view,i);
                }

            }
        });
    }

    @Override
    public int getItemCount() {
        return data == null ? 0 : data.size();
    }

    public class LieBiaoHolder extends RecyclerView.ViewHolder {
        @BindView(R.id.fresco_liebiao)
        SimpleDraweeView frescoLiebiao;
        @BindView(R.id.liebiao_text)
        TextView liebiaoText;
        @BindView(R.id.liebiao_text1)
        TextView liebiaoText1;
        public LieBiaoHolder(@NonNull View itemView) {
            super(itemView);
            ButterKnife.bind(this,itemView);
        }
    }

     OnItemLieBiaoInstance  onItemLieBiaoInstance;

    public interface OnItemLieBiaoInstance {
        void onItemClick(View view , int position);
    }

    public void setOnItemLieBiaoInstance(OnItemLieBiaoInstance onItemLieBiaoInstance) {
        this.onItemLieBiaoInstance = onItemLieBiaoInstance;
    }
}

 SheJiShiAdapter类

package com.baiwei.tianlong.zhoukao_moni.adapter;

import android.content.Context;
import android.net.Uri;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import com.baiwei.tianlong.zhoukao_moni.R;
import com.baiwei.tianlong.zhoukao_moni.mvp.main.model.beans.SheJiBeans;
import com.facebook.drawee.view.SimpleDraweeView;

import java.util.List;

import butterknife.BindView;
import butterknife.ButterKnife;

public class SheJiShiAdapter extends RecyclerView.Adapter<SheJiShiAdapter.SheJiHolder> {

    private List<SheJiBeans.DataBean.DisplayBean> display;
    private Context context;

    public SheJiShiAdapter(List<SheJiBeans.DataBean.DisplayBean> display, Context context) {
        this.display = display;
        this.context = context;
    }

    @NonNull
    @Override
    public SheJiHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View view = LayoutInflater.from(viewGroup.getContext())
                .inflate(R.layout.shejiitem, viewGroup, false);
        return new SheJiHolder(view);
    }

    @Override
        public void onBindViewHolder(@NonNull SheJiHolder sheJiHolder, int i) {
        String avatar = display.get(i).getAvatar();
        String nick_name = display.get(i).getNick_name();
        sheJiHolder.frescoSheji.setImageURI(Uri.parse(avatar));
        sheJiHolder.shejiText.setText(nick_name);

    }

    @Override
    public int getItemCount() {
        return display == null ? 0 : display.size();
    }

    public class SheJiHolder extends RecyclerView.ViewHolder {
        @BindView(R.id.fresco_sheji)
        SimpleDraweeView frescoSheji;
        @BindView(R.id.sheji_text)
        TextView shejiText;

        public SheJiHolder(@NonNull View itemView) {
            super(itemView);
            ButterKnife.bind(this,itemView);
        }
    }
}

 

package com.baiwei.tianlong.zhoukao_moni.adapter;


import android.content.Context;
import android.net.Uri;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import com.baiwei.tianlong.zhoukao_moni.R;
import com.baiwei.tianlong.zhoukao_moni.mvp.tusan.model.beans.TuSanBeans;
import com.facebook.drawee.view.SimpleDraweeView;

import java.util.List;

import butterknife.BindView;
import butterknife.ButterKnife;

public class TuSanAdapter extends RecyclerView.Adapter<TuSanAdapter.TuSanHodel> {

    private List<TuSanBeans.DataBean> data;
    private Context context;

    public TuSanAdapter(List<TuSanBeans.DataBean> data, Context context) {
        this.data = data;
        this.context = context;
    }


    @NonNull
    @Override
    public TuSanHodel onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View view = LayoutInflater.from(viewGroup.getContext())
                .inflate(R.layout.tusan_item, viewGroup, false);
        return new TuSanHodel(view);
    }

    @Override
    public void onBindViewHolder(@NonNull TuSanHodel tuSanHodel, int i) {
        String image_url = data.get(i).getImages().split("\\|")[0];
        String title = data.get(i).getTitle();
        String subhead = data.get(i).getSubhead();


        tuSanHodel.frescoTusan.setImageURI(Uri.parse(image_url));
        tuSanHodel.tusanText.setText(title);
        tuSanHodel.tusanText1.setText(subhead);

    }

    @Override
    public int getItemCount() {
        return data == null ? 0 : data.size();
    }

    public class TuSanHodel extends RecyclerView.ViewHolder {
        @BindView(R.id.fresco_tusan)
        SimpleDraweeView frescoTusan;
        @BindView(R.id.tusan_text)
        TextView tusanText;
        @BindView(R.id.tusan_text1)
        TextView tusanText1;

        public TuSanHodel(@NonNull View itemView) {
            super(itemView);
            ButterKnife.bind(this,itemView);
        }
    }
}

package com.baiwei.tianlong.zhoukao_moni.base;

import android.app.Activity;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;

import butterknife.ButterKnife;

public abstract class BaseActivity<P extends BasePresenter> extends AppCompatActivity {
    //注入基类
    protected  P presenter;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(provideLayoutId());

        //ButterKnitfe
        ButterKnife.bind(provideBindView());


        initView();

        presenter = providePresenter();

        initData();

        initListener();
    }

    protected abstract P providePresenter();

    protected void initListener() {
    }

    protected void initData() {
    }

    protected  void initView(){

    };

    protected abstract Activity provideBindView();

    protected abstract int provideLayoutId();
}
 

 

package com.baiwei.tianlong.zhoukao_moni.base;

import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import butterknife.ButterKnife;
import butterknife.Unbinder;

public abstract class BaseFragment<P extends BasePresenter> extends Fragment {
    protected  P prsenter;

    private View view;

    private Unbinder unbinder;

    @Nullable
    @Override
    public android.view.View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        //加载布局
        if (view == null){
            view = inflater.inflate(provideFragmentLayoutID(), container, false);
        }
        ViewGroup parent = (ViewGroup) view.getParent();

        if (parent!= null){
            parent.removeView(view);
        }

        //ButterKifer
        unbinder = ButterKnife.bind(provideBindView(),view);
        return view;

    }

    protected abstract Object provideBindView();

    protected abstract int provideFragmentLayoutID();

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        prsenter = providePresenter();

        //初始化
        initView(view);
        initData();
        initListener();

    }

    protected void initListener() {
    }

    protected void initData() {
    }

    protected void initView(View view) {
    }

    protected abstract P providePresenter();

    @Override
    public void onDestroy() {
        prsenter.onDestory();
        super.onDestroy();
    }

    @Override
    public void onDestroyView() {
        super.onDestroyView();
        //Fresco 清理缓存
//        ImagePipeline imagePipeline = Fresco.getImagePipeline();
//        imagePipeline.clearMemoryCaches();
//        imagePipeline.clearDiskCaches();
//        imagePipeline.clearCaches();

        unbinder.unbind();
    }
}

 

package com.baiwei.tianlong.zhoukao_moni.base;

import android.content.Context;

import com.baiwei.tianlong.zhoukao_moni.App;

import io.reactivex.disposables.CompositeDisposable;

public abstract class BasePresenter<V extends View> {
    protected V view;

    //取消订阅
    protected CompositeDisposable compositeDisposable = new CompositeDisposable();

    public BasePresenter(V view) {
        this.view = view;
        initModel();
    }
    //注入model方法
    protected  abstract   void initModel();


    //处理内存溢出
    void onDestory(){
        view = null;
        compositeDisposable.clear();
    }

    protected Context context(){
        if (view!=null && view.context()!=null){
            return view.context();
        }else {
            return App.getAppContext();
        }
    }
}
 

package com.baiwei.tianlong.zhoukao_moni.utils;

public  class ConstantApi {
    public static final String BASE_URL="https://www.zhaoapi.cn/";

    public static final String AD_URL="quarter/getAd";
    public static final String CATAGORY_URL="product/getCatagory";
    public static final String PRODUCTS_URL="product/getProducts";

    public static final String BASE_URL1="https://app.tuozhe8.com/";
    public static final String SHE_JI="api.php/api/Lists/designer?token=&version=1.7";

}
 

package com.baiwei.tianlong.zhoukao_moni.utils;

import android.util.Log;

import java.util.concurrent.TimeUnit;

import okhttp3.OkHttpClient;
import okhttp3.logging.HttpLoggingInterceptor;
import retrofit2.Retrofit;
import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;
import retrofit2.converter.gson.GsonConverterFactory;

public class RetrofitcManager {
    private final Retrofit retrofit;

    private static class SingHolder{
        private static final RetrofitcManager INSTANT = new RetrofitcManager(ConstantApi.BASE_URL);
        private static final RetrofitcManager INSTANT1 = new RetrofitcManager(ConstantApi.BASE_URL1);
    }

    public static RetrofitcManager getDefault(){
        return SingHolder.INSTANT;
    }

    public static RetrofitcManager getDefault1(){
        return SingHolder.INSTANT1;
    }

    public RetrofitcManager(String baseUrl) {
        this.retrofit = new Retrofit.Builder()
                            .baseUrl(baseUrl)
                            .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
                            .addConverterFactory(GsonConverterFactory.create())
                            .build();
    }

    //网络拦截器
    private OkHttpClient buildOkHttpClient(){
        HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() {
            @Override
            public void log(String message) {
                Log.i("xxx", "日志信息:" + message);
            }
        });
        interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
        return new OkHttpClient.Builder()
                .addInterceptor(interceptor)
                .connectTimeout(5, TimeUnit.SECONDS)
                .writeTimeout(5, TimeUnit.SECONDS)
                .readTimeout(5, TimeUnit.SECONDS)
                .addInterceptor(interceptor)
                .build();

    }
    public <T> T create(Class<T> tClass) {
        return retrofit.create(tClass);
    }


}
 

public interface ModelApi {

    //轮播
    @GET(ConstantApi.AD_URL)
    Flowable<LunBoBeans> getLunBo();

    //设计
    @GET(ConstantApi.SHE_JI)
    Flowable<SheJiBeans> getSheJi();

    //列表
    @GET(ConstantApi.CATAGORY_URL)
    Flowable<LieBiaoBeans> getLieBiao();

}

 

package com.baiwei.tianlong.zhoukao_moni.mvp.main.model;

import com.baiwei.tianlong.zhoukao_moni.mvp.main.model.beans.LieBiaoBeans;
import com.baiwei.tianlong.zhoukao_moni.mvp.main.model.beans.LunBoBeans;
import com.baiwei.tianlong.zhoukao_moni.mvp.main.model.beans.SheJiBeans;
import com.baiwei.tianlong.zhoukao_moni.utils.RetrofitcManager;

import io.reactivex.Flowable;

public class ModelApiTask implements ModelApi {
    @Override
    public Flowable<LunBoBeans> getLunBo() {
        return RetrofitcManager.getDefault().create(ModelApi.class).getLunBo();
    }

    @Override
    public Flowable<SheJiBeans> getSheJi() {
        return RetrofitcManager.getDefault1().create(ModelApi.class).getSheJi();
    }

    @Override
    public Flowable<LieBiaoBeans> getLieBiao() {
        return RetrofitcManager.getDefault().create(ModelApi.class).getLieBiao();
    }


}
 

package com.baiwei.tianlong.zhoukao_moni.mvp.main.presenter;

import com.baiwei.tianlong.zhoukao_moni.base.BasePresenter;

import com.baiwei.tianlong.zhoukao_moni.mvp.main.model.ModelApiTask;
import com.baiwei.tianlong.zhoukao_moni.mvp.main.model.beans.LieBiaoBeans;
import com.baiwei.tianlong.zhoukao_moni.mvp.main.model.beans.LunBoBeans;
import com.baiwei.tianlong.zhoukao_moni.mvp.main.model.beans.SheJiBeans;
import com.baiwei.tianlong.zhoukao_moni.mvp.tusan.model.beans.TuSanBeans;
import com.baiwei.tianlong.zhoukao_moni.mvp.main.view.ZhouKaoView;


import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.schedulers.Schedulers;
import io.reactivex.subscribers.DisposableSubscriber;

public class ZhouKaoPresenter extends BasePresenter<ZhouKaoView> {

    private ModelApiTask modelApiTask;

    public ZhouKaoPresenter(ZhouKaoView view) {
        super(view);
    }

    @Override
    protected void initModel() {
        modelApiTask = new ModelApiTask();
    }

    //轮播图
    public void getLunBo(){
        modelApiTask.getLunBo()
                    .subscribeOn(Schedulers.io())
                    .observeOn(AndroidSchedulers.mainThread())
                    .subscribe(new DisposableSubscriber<LunBoBeans>() {
                        @Override
                        public void onNext(LunBoBeans lunBoBeans) {
                            if ("0".equals(lunBoBeans.getCode())){
                                if (view!=null){
                                    view.getLunBoSuccess(lunBoBeans);
                                }

                            }else {
                                if (view!=null){
                                    view.getLunBoError(lunBoBeans.getMsg());
                                }
                            }
                        }

                        @Override
                        public void onError(Throwable t) {
                            if (view!=null){
                                view.getLunBoError(t.toString());
                            }
                        }

                        @Override
                        public void onComplete() {

                        }
                    });
    }
    //列表
    public void getLieBiao(){
        modelApiTask.getLieBiao()
                     .subscribeOn(Schedulers.io())
                     .observeOn(AndroidSchedulers.mainThread())
                    .subscribe(new DisposableSubscriber<LieBiaoBeans>() {
                    @Override
                    public void onNext(LieBiaoBeans lieBiaoBeans) {
                        if ("0".equals(lieBiaoBeans.getCode())){
                            if (view!=null){
                                view.getLieBiaoSuccess(lieBiaoBeans);
                            }
                        }else {
                            if (view!=null){
                                view.getLieBiaoError(lieBiaoBeans.getMsg());
                            }
                        }
                    }
                    @Override
                    public void onError(Throwable t) {
                        if (view!=null){
                            view.getLieBiaoError(t.toString());
                        }
                    }

                    @Override
                    public void onComplete() {

                    }
                });
    }
    //设计
    public void getSheJi(){
        modelApiTask.getSheJi()
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new DisposableSubscriber<SheJiBeans>() {
                    @Override
                    public void onNext(SheJiBeans sheJiBeans) {
                        if ("1".equals(sheJiBeans.getCode())){
                            if (view!=null){
                                view.getSheJiSuccess(sheJiBeans);
                            }
                        }else {
                            if (view!=null){
                                view.getSheJiError(sheJiBeans.getMessage());
                            }
                        }
                    }
                    @Override
                    public void onError(Throwable t) {
                        if (view!=null){
                            view.getSheJiError(t.toString());
                        }
                    }

                    @Override
                    public void onComplete() {

                    }
                });
    }

}
 

package com.baiwei.tianlong.zhoukao_moni.mvp.main.view;

import com.baiwei.tianlong.zhoukao_moni.base.View;
import com.baiwei.tianlong.zhoukao_moni.mvp.main.model.beans.LieBiaoBeans;
import com.baiwei.tianlong.zhoukao_moni.mvp.main.model.beans.LunBoBeans;
import com.baiwei.tianlong.zhoukao_moni.mvp.main.model.beans.SheJiBeans;
import com.baiwei.tianlong.zhoukao_moni.mvp.tusan.model.beans.TuSanBeans;

public interface ZhouKaoView extends View {
    //轮播
    void getLunBoSuccess(LunBoBeans lunBoBeans);

    void getLunBoError(String error);

    //设计师
    void  getSheJiSuccess(SheJiBeans sheJiBeans);

    void getSheJiError(String error);

    //列表
    void getLieBiaoSuccess(LieBiaoBeans lieBiaoBeans);

    void getLieBiaoError(String error);


}

 

 

package com.baiwei.tianlong.zhoukao_moni.mvp.tusan.model;

import com.baiwei.tianlong.zhoukao_moni.mvp.tusan.model.beans.TuSanBeans;
import com.baiwei.tianlong.zhoukao_moni.utils.ConstantApi;

import io.reactivex.Flowable;
import retrofit2.http.GET;
import retrofit2.http.Query;

public interface TuSanApi {
    //图三
    @GET(ConstantApi.PRODUCTS_URL)
    Flowable<TuSanBeans> getTuSans(@Query("pscid") int pscid);
}

 

package com.baiwei.tianlong.zhoukao_moni.mvp.tusan.model;

import com.baiwei.tianlong.zhoukao_moni.mvp.main.model.ModelApi;
import com.baiwei.tianlong.zhoukao_moni.mvp.tusan.model.beans.TuSanBeans;
import com.baiwei.tianlong.zhoukao_moni.utils.RetrofitcManager;

import io.reactivex.Flowable;

public class TuSanApiTask implements TuSanApi {
    @Override
    public Flowable<TuSanBeans> getTuSans(int pscid) {
        return RetrofitcManager.getDefault().create(TuSanApi.class).getTuSans(pscid);
    }
}
 

 

package com.baiwei.tianlong.zhoukao_moni.mvp.tusan.presenter;

import com.baiwei.tianlong.zhoukao_moni.base.BasePresenter;
import com.baiwei.tianlong.zhoukao_moni.mvp.main.view.ZhouKaoView;
import com.baiwei.tianlong.zhoukao_moni.mvp.tusan.model.TuSanApiTask;
import com.baiwei.tianlong.zhoukao_moni.mvp.tusan.model.beans.TuSanBeans;
import com.baiwei.tianlong.zhoukao_moni.mvp.tusan.view.TuSanView;

import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.schedulers.Schedulers;
import io.reactivex.subscribers.DisposableSubscriber;

public class TuSanPresenter extends BasePresenter<TuSanView> {

    private TuSanApiTask tuSanApiTask;

    public TuSanPresenter(TuSanView view) {
        super(view);
    }

    @Override
    protected void initModel() {
        tuSanApiTask = new TuSanApiTask();
    }

    //图三
    public void getTuSan(int pscid){
        tuSanApiTask.getTuSans(pscid)
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new DisposableSubscriber<TuSanBeans>() {
                    @Override
                    public void onNext(TuSanBeans tuSanBeans) {
                        if ("0".equals(tuSanBeans.getCode())){
                            if (view!=null){
                                view.getTuSanSuccess(tuSanBeans);
                            }
                        }else {
                            if (view!=null){
                                view.getTuSanError(tuSanBeans.getMsg());
                            }
                        }
                    }
                    @Override
                    public void onError(Throwable t) {
                        if (view!=null){
                            view.getTuSanError(t.toString());
                        }
                    }

                    @Override
                    public void onComplete() {

                    }
                });
    }
}
 

package com.baiwei.tianlong.zhoukao_moni.mvp.tusan.view;

import com.baiwei.tianlong.zhoukao_moni.base.View;
import com.baiwei.tianlong.zhoukao_moni.mvp.tusan.model.beans.TuSanBeans;

public interface TuSanView extends View{

    //图三
    void getTuSanSuccess(TuSanBeans tuSanBeans);

    void getTuSanError(String error);
}
 

package com.baiwei.tianlong.zhoukao_moni;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;

import com.baiwei.tianlong.zhoukao_moni.adapter.LieBiaoAdapter;
import com.baiwei.tianlong.zhoukao_moni.adapter.SheJiShiAdapter;
import com.baiwei.tianlong.zhoukao_moni.base.BaseActivity;
import com.baiwei.tianlong.zhoukao_moni.mvp.main.model.beans.LieBiaoBeans;
import com.baiwei.tianlong.zhoukao_moni.mvp.main.model.beans.LunBoBeans;
import com.baiwei.tianlong.zhoukao_moni.mvp.main.model.beans.SheJiBeans;
import com.baiwei.tianlong.zhoukao_moni.mvp.tusan.model.beans.TuSanBeans;
import com.baiwei.tianlong.zhoukao_moni.mvp.main.presenter.ZhouKaoPresenter;
import com.baiwei.tianlong.zhoukao_moni.mvp.main.view.ZhouKaoView;
import com.facebook.drawee.view.SimpleDraweeView;
import com.youth.banner.Banner;
import com.youth.banner.BannerConfig;
import com.youth.banner.Transformer;
import com.youth.banner.listener.OnBannerListener;
import com.youth.banner.loader.ImageLoader;

import java.util.ArrayList;
import java.util.List;

import butterknife.BindView;
import butterknife.ButterKnife;

public class MainActivity extends BaseActivity<ZhouKaoPresenter> implements ZhouKaoView {
    private static final String TAG = "MainAtivity";
    @BindView(R.id.banner)
    Banner banner;
    @BindView(R.id.sheji)
    RecyclerView sheji;
    @BindView(R.id.liebiao)
    RecyclerView liebiao;


    private List<String> listLunBo = new ArrayList<>();
    private List<String> titles = new ArrayList<>();


    //注入p
    @Override
    protected ZhouKaoPresenter providePresenter() {
        return new ZhouKaoPresenter(this);
    }

    @Override
    protected Activity provideBindView() {
        return this;
    }

    @Override
    protected int provideLayoutId() {
        return R.layout.activity_main;
    }

    @Override
    protected void initData() {
        super.initData();
        if (presenter!=null){
            presenter.getLunBo();
        }
    }


    //轮播
    @Override
    public void getLunBoSuccess(final LunBoBeans lunBoBeans) {

        List<LunBoBeans.DataBean> data = lunBoBeans.getData();

        for (int i = 0; i < data.size(); i++) {
            String icon = data.get(i).getIcon();
            String title = data.get(i).getTitle();
            String url = data.get(i).getUrl();
            listLunBo.add(icon);
            titles.add(title);
        }
        banner.setImageLoader(new MyLoader());
        banner.setImages(listLunBo);
        banner.setDelayTime(2000);
        banner.setBannerTitles(titles);
        banner.setBannerAnimation(Transformer.BackgroundToForeground);
        banner.setBannerStyle(BannerConfig.NUM_INDICATOR_TITLE);
        banner.start();

        banner.setOnBannerListener(new OnBannerListener() {
            @Override
            public void OnBannerClick(int position) {
                final String url = lunBoBeans.getData().get(position).getUrl();
                Intent intent  = new Intent(MainActivity.this,WebActivity.class);
                intent.putExtra("url",url);
                startActivity(intent);
            }
        });

        presenter.getSheJi();
    }

    @Override
    public void getLunBoError(String error) {
        Log.d(TAG, "getLunBoError: " + error);
    }


    //设计师
    @Override
    public void getSheJiSuccess(SheJiBeans sheJiBeans) {
        List<SheJiBeans.DataBean.DisplayBean> display = sheJiBeans.getData().getDisplay();
        
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
        linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
        sheji.setLayoutManager(linearLayoutManager);
        SheJiShiAdapter adapter = new SheJiShiAdapter(display,this);
        sheji.setAdapter(adapter);

        presenter.getLieBiao();
        
    }

    @Override
    public void getSheJiError(String error) {
        Log.d(TAG, "getSheJiError: " + error);
    }
    
    
    //列表
    @Override
    public void getLieBiaoSuccess(LieBiaoBeans lieBiaoBeans) {
        List<LieBiaoBeans.DataBean> data = lieBiaoBeans.getData();
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
        linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);

        liebiao.setLayoutManager(linearLayoutManager);
        LieBiaoAdapter lieBiaoAdapter = new LieBiaoAdapter(data,this);
        liebiao.setAdapter(lieBiaoAdapter);

        lieBiaoAdapter.setOnItemLieBiaoInstance(new LieBiaoAdapter.OnItemLieBiaoInstance() {
            @Override
            public void onItemClick(View view, int position) {
                Intent intent  = new Intent(MainActivity.this,TuSanActivity.class);
                startActivity(intent);
            }
        });

    }

    @Override
    public void getLieBiaoError(String error) {
        Log.d(TAG, "getLieBiaoError: " + error);
    }

    @Override
    public Context context() {
        return null;
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // TODO: add setContentView(...) invocation
        ButterKnife.bind(this);
    }

    //图片加载
    private class MyLoader extends ImageLoader {

        @Override
        public void displayImage(Context context, Object path, ImageView imageView) {
            imageView.setImageURI(Uri.parse((String) path));
        }

        @Override
        public ImageView createImageView(Context context) {
            SimpleDraweeView simpleDraweeView = new SimpleDraweeView(context);
            return simpleDraweeView;
        }
    }
}
 

package com.baiwei.tianlong.zhoukao_moni;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;

import com.baiwei.tianlong.zhoukao_moni.adapter.TuSanAdapter;
import com.baiwei.tianlong.zhoukao_moni.base.BaseActivity;
import com.baiwei.tianlong.zhoukao_moni.mvp.tusan.model.beans.TuSanBeans;
import com.baiwei.tianlong.zhoukao_moni.mvp.tusan.presenter.TuSanPresenter;
import com.baiwei.tianlong.zhoukao_moni.mvp.tusan.view.TuSanView;

import java.util.List;

import butterknife.BindView;
import butterknife.ButterKnife;

public class TuSanActivity extends BaseActivity<TuSanPresenter> implements TuSanView {


    @BindView(R.id.tusan)
    RecyclerView tusan;

    @Override
    protected TuSanPresenter providePresenter() {
        return new TuSanPresenter(this);
    }

    @Override
    protected Activity provideBindView() {
        return this;
    }

    @Override
    protected int provideLayoutId() {
        return R.layout.activity_tu_san;
    }

    @Override
    protected void initData() {
        super.initData();
        presenter.getTuSan(1);
    }

    @Override
    public void getTuSanSuccess(TuSanBeans tuSanBeans) {
        List<TuSanBeans.DataBean> data = tuSanBeans.getData();
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
        linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);

        tusan.setLayoutManager(linearLayoutManager);


        TuSanAdapter tuSanAdapter = new TuSanAdapter(data, this);
        tusan.setAdapter(tuSanAdapter);


    }

    @Override
    public void getTuSanError(String error) {

    }

    @Override
    public Context context() {
        return this;
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // TODO: add setContentView(...) invocation
        ButterKnife.bind(this);
    }
}
 

 

package com.baiwei.tianlong.zhoukao_moni;

import android.app.AlertDialog;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.webkit.JsResult;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.widget.Button;
import android.widget.ProgressBar;
import android.widget.Toast;

import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;

public class WebActivity extends AppCompatActivity {

    private static final String TAG = "WebAtivity";

    @BindView(R.id.web)
    WebView web;
    @BindView(R.id.fanhui)
    Button fanhui;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_web);
        ButterKnife.bind(this);

        int taskId = getTaskId();

        Intent intent = getIntent();
        String url = intent.getStringExtra("url");
        Toast.makeText(this,url,Toast.LENGTH_SHORT).show();


        web.loadUrl(url);
        WebSettings webSettings = web.getSettings();
        webSettings.setJavaScriptEnabled(true);


    }

    @OnClick(R.id.fanhui)
    public void onViewClicked() {
        Intent intent = new Intent();
        setResult(2,intent);
        finish();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        web.removeAllViews();
        web.destroy();
    }
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值