1.RegisterActivity
package com.bw.zy1210.mvvm.register; import androidx.lifecycle.Observer; import android.content.Intent; import android.view.View; import android.widget.Toast; import com.bw.zy1210.R; import com.bw.zy1210.base.entity.UserEntity; import com.bw.zy1210.base.view.BaseActivity; import com.bw.zy1210.databinding.ActivityRegisterBinding; import com.bw.zy1210.mvvm.login.LoginActivity; import com.google.gson.Gson; import java.util.HashMap; import java.util.Map; import okhttp3.MediaType; import okhttp3.RequestBody; public class RegisterActivity extends BaseActivity<ActivityRegisterBinding, RegisterViewModel> { @Override protected Class<RegisterViewModel> getViewModel() { return RegisterViewModel.class; } @Override protected int getLayoutid() { return R.layout.activity_register; } @Override protected void initdata() { } @Override protected void initview() { mviewDataBinding.register.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String username = mviewDataBinding.etUser.getText().toString(); String password = mviewDataBinding.etPassword.getText().toString(); String repassword = mviewDataBinding.repassword.getText().toString(); Map<String,String> map=new HashMap<>(); map.put("username",username); map.put("password",password); map.put("repassword",repassword); String json = new Gson().toJson(map); RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), json); mviewModel.postRegister(requestBody); } }); } @Override protected void handObserver() { super.handObserver(); mviewModel.registration.observe(this, new Observer<UserEntity>() { @Override public void onChanged(UserEntity userEntity) { if (userEntity.getCode()==200){ Toast.makeText(RegisterActivity.this, "注册成功", Toast.LENGTH_SHORT).show(); Intent intent = new Intent(RegisterActivity.this, LoginActivity.class); startActivity(intent); } else { Toast.makeText(RegisterActivity.this, "注册失败", Toast.LENGTH_SHORT).show(); } } }); } }
2.RegisterModel
package com.bw.zy1210.mvvm.register; import com.bw.zy1210.base.entity.UserEntity; import com.bw.zy1210.base.model.Basemodel; import io.reactivex.Observable; import okhttp3.RequestBody; public class RegisterModel extends Basemodel { public Observable<UserEntity> postRegisterData(RequestBody body){ return api.postRetister(body); } }
3.RegisterViewModel
package com.bw.zy1210.mvvm.register; import android.util.Log; import androidx.lifecycle.MutableLiveData; import com.bw.zy1210.base.entity.UserEntity; import com.bw.zy1210.base.viewmodel.Baseviewmodel; import io.reactivex.Observer; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.disposables.Disposable; import io.reactivex.schedulers.Schedulers; import okhttp3.RequestBody; public class RegisterViewModel extends Baseviewmodel<RegisterModel> { public MutableLiveData<UserEntity> registration=new MutableLiveData(); @Override protected RegisterModel creatmodel() { return new RegisterModel(); } public void postRegister(RequestBody body){ baseModel.postRegisterData(body) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Observer<UserEntity>() { @Override public void onSubscribe(Disposable d) { } @Override public void onNext(UserEntity userEntity) { registration.postValue(userEntity); } @Override public void onError(Throwable e) { } @Override public void onComplete() { } }); } }