MVPRXJava and Recorfit application

 
 
The MVP interface is not used, it is the basic value transfer
//API interface
import retrofit2.http. POST ;
import retrofit2.http. Query ;
import rx.Observable;
     /** * Created by Administrator on 2018/4/15. */
    public interface ApiService {
         // https://www.zhaoapi.cn/user/reg  
                  @POST ( "user/reg" )
                  Observable<Bean> getPost( @Query ( "mobile" ) String mobole, @Query ( "password" ) String password);}

Model layer
 
  
import okhttp3.OkHttpClient;
import retrofit2.Retrofit;
import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;
import retrofit2.converter.gson.GsonConverterFactory;
import rx.Observer;
import rx.android.schedulers.AndroidSchedulers;
import rx.schedulers.Schedulers;
/** * Created by Administrator on 2018/4/15. */
class Moudel {
private IMou iMou ;
    public Moudel (IMou iMou) {
this . iMou = iMou;
}
public void getDate(String url, String mobile, String password) {
       OkHttpClient.Builder client = new OkHttpClient.Builder();
       Retrofit retrofit = new Retrofit.Builder()
             .client(client.build())
             .baseUrl (url)
            .addConverterFactory(GsonConverterFactory. create ())
            .addCallAdapterFactory(RxJava2CallAdapterFactory. create ())
            .build();

ApiService service = retrofit.create(ApiService. class );
service.getPost(mobile,password).subscribeOn(Schedulers. io ())
.observeOn(AndroidSchedulers. mainThread ())
.subscribe( new Observer<Bean>() {

@Override  
public void onCompleted() {
} @Override  
public void onError(Throwable e) { }
@Override
public void onNext(Bean bean) {
       iMou .getBean (bean);
} }); }}

P layer
class Presenter implements IMou {

    private IPre iPre;
    private Moudel moudel;

    public Presenter(IPre iPre) {
        this.iPre = iPre;
        moudel = new Moudel(this);
    }

    public void getDate(String url, String mobile, String password) {
        moudel.getDate(url,mobile,password);
    }

    @Override
public void getBean(Bean bean) {
        iPre.getBean(bean);    
    }
}

view layer
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity implements IPre{

    private Presenter presenter;
    public static String url = "https://www.zhaoapi.cn/";

    @Override
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);    
        setContentView(R.layout.activity_main);

        presenter = new Presenter(this);

        presenter.getDate(url,"15110198098","123");
    }

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


 
 

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325535076&siteId=291194637