RetrofitUntils工具类 抽积类

RetrofitApi
@POST("file/upload")
@Multipart
Observable<Test> uploadFile(@Query("uid") String uid, @Part MultipartBody.Part file,@Query("token")String token);
@GET("user/getUserInfo")
Observable<GrBean> getBean(@Query("uid")String uid);
Constant
public interface Constant {
     String baseUrl="https://www.zhaoapi.cn/";
}

private OkHttpClient client;
private  Retrofit retrofit;

private RetrofitUntils() {
    HttpLoggingInterceptor httpLoggingInterceptor = new HttpLoggingInterceptor();
    httpLoggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
    client = new OkHttpClient.Builder()
            .addInterceptor(httpLoggingInterceptor)
            .build();
    retrofit = new Retrofit.Builder()
            .baseUrl(Constant.baseUrl)
            .client(client)
            .addConverterFactory(GsonConverterFactory.create())
            .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
            .build();
}

//单列模式
private static RetrofitUntils INSTANCE;

public static RetrofitUntils getInsatnce() {
    if (INSTANCE == null) {
        synchronized (RetrofitUntils.class) {
            if (INSTANCE == null) {
                INSTANCE = new RetrofitUntils();
            }
        }
    }
    return INSTANCE;
}

public RetrofitApi getApi() {
    RetrofitApi retrofitApi = retrofit.create(RetrofitApi.class);
    return retrofitApi;

}

BasePersenter

public class BasePresenter<V extends BaseIView> {


    private V iBaseView;
    //
    public void attachView(V iBaseView) {
        this.iBaseView = iBaseView;
    }

    public V getView() {

        return iBaseView;
    }

    public void dechView() {
        iBaseView = null;
    }

}
MyPresenter
public class MyPresenter extends BasePresenter<IView> {
    private RetrofitUntils retrofitUntils;
    public MyPresenter(){
        //拿到单例
        retrofitUntils=RetrofitUntils.getInsatnce();
    }
    public void loadDataServer(String mobile,String password){
        Observable<Bean> observable = retrofitUntils.getApi().getCall(mobile,password);
        observable.subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Observer<Bean>() {
                    @Override
                    public void onSubscribe(Disposable d) {

                    }

                    @Override
                    public void onNext(Bean bean) {
                        Log.e("onNext","onNext");
                        getView().chenggong(bean);
                    }

                    @Override
                    public void onError(Throwable e) {
                        Log.e("onError","onError");
                    }

                    @Override
                    public void onComplete() {

                    }
                });
    }
    public void loadDataServerlist(String pscid){
        final Observable<ListBean> getlist = retrofitUntils.getApi().getlist(pscid);
        getlist.subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Observer<ListBean>() {
                    @Override
                    public void onSubscribe(Disposable d) {

                    }

                    @Override
                    public void onNext(ListBean listBean) {
                        Log.e("onNext", String.valueOf(listBean));
                        getView().listchenggong(listBean);

                    }

                    @Override
                    public void onError(Throwable e) {
                        Log.e("onError","onError");
                        getView().shibai(e.getMessage());
                    }

                    @Override
                    public void onComplete() {

                    }
                });

    }
}
 
BaseIView

public interface BaseIView {
}
 
IView
public interface IView extends BaseIView{
    void chenggong(Bean bean);
    void shibai(String msg);
}
 
BaseActivity

public abstract class BaseActivity <P extends BasePresenter> extends AppCompatActivity implements IView{
    public P BasePresenter;

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


        initView();
        initBaseView();
        initData();
    }

    private void initBaseView() {
        BasePresenter=setPresenter();
        if(BasePresenter!=null){
            BasePresenter.attachView(this);
        }
    }

    protected abstract void initData();

    protected abstract void initView();

    protected abstract int setLayout();

    abstract P setPresenter();
}
MainActivity
public class MainActivity extends BaseActivity<MyPresenter> implements IView{

    private EditText del;
    private EditText pass;
    private Button login;
    private String del1;
    private String pass1;
    private RecyclerView rec;

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

    }

    @Override
    protected void initData() {
        BasePresenter.attachView(this);

        BasePresenter.loadDataServerlist("1");
    }

    @Override
    protected void initView() {
        del = findViewById(R.id.del);
        pass = findViewById(R.id.password);
        login = findViewById(R.id.login);
        rec = findViewById(R.id.rec);
        login.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                del1 = del.getText().toString();
                pass1 = pass.getText().toString();
                BasePresenter.loadDataServer(del1,pass1);
            }
        });
    }

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

    @Override
    MyPresenter setPresenter() {
        return new MyPresenter();
    }

    @Override
    public void chenggong(Bean bean) {
        if(bean.getCode().equals("0")){
            Toast.makeText(this,bean.getMsg(),Toast.LENGTH_SHORT).show();
        }

    }

    @Override
    public void shibai(String msg) {
        Toast.makeText(this,"登录失败",Toast.LENGTH_SHORT).show();
    }

    @Override
    public void listchenggong(ListBean bean) {
        List<ListBean.DataBean> data = bean.getData();
        ListAdater listAdater=new ListAdater(data,this);
        LinearLayoutManager linearLayoutManager=new LinearLayoutManager(this);
        rec.setLayoutManager(linearLayoutManager);
        rec.setAdapter(listAdater);
    }

    @Override
    public void listshibai(String msg) {

    }
}



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值