先创建registermodel,registerviewmdel,registeractivity
package com.bw.day1.Register; import com.bw.day1.Entity.UserEntity; import com.bw.day1.Http.Api; import com.bw.day1.Http.RetrofitManager; import io.reactivex.Observable; import okhttp3.RequestBody; public class RegisterModel { protected Api mapi; public RegisterModel() { mapi = RetrofitManager.getRetrofitManager().getRetrofit().create(Api.class); } public Observable<UserEntity> postRegisterData(RequestBody body){ return mapi.postRegisterData(body); } }
第二个registerviewmodel:
package com.bw.day1.Register; import android.util.Log; import androidx.lifecycle.MutableLiveData; import androidx.lifecycle.ViewModel; import com.bw.day1.Entity.UserEntity; 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 ViewModel { protected RegisterModel registerModel; public MutableLiveData<UserEntity> RegisterLiveData = new MutableLiveData<>(); public RegisterViewModel() { registerModel = new RegisterModel(); } public void register(RequestBody body){ registerModel.postRegisterData(body) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Observer<UserEntity>() { @Override public void onSubscribe(Disposable d) { } @Override public void onNext(UserEntity userEntity) { Log.i("--------","onNext :"+userEntity.getMessage()); RegisterLiveData.postValue(userEntity); } @Override public void onError(Throwable e) { } @Override public void onComplete() { } }); } }
第三个activity:
package com.bw.day1.Register; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; import androidx.databinding.DataBindingUtil; import androidx.databinding.ViewDataBinding; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; import com.bw.day1.Entity.UserEntity; import com.bw.day1.Login.LoginActivity; import com.bw.day1.MainActivity; import com.bw.day1.R; import com.bw.day1.databinding.ActivityRegisterBinding; import com.google.gson.Gson; import java.util.HashMap; import java.util.Map; import okhttp3.MediaType; import okhttp3.RequestBody; public class RegisterActivity extends AppCompatActivity { ActivityRegisterBinding activityRegisterBinding; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_register); activityRegisterBinding = DataBindingUtil.setContentView(this, R.layout.activity_register); RegisterViewModel foodViewModel = new ViewModelProvider(this).get(RegisterViewModel.class); activityRegisterBinding.btnRegister.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String username = activityRegisterBinding.etUsername.getText().toString().trim(); String password = activityRegisterBinding.etPassword.getText().toString().trim(); String repassword = activityRegisterBinding.etRepassword.getText().toString().trim(); 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;charset=utf-8"),json); //启动MVVM foodViewModel.register(requestBody); } }); foodViewModel.RegisterLiveData.observe(this, new Observer<UserEntity>() { @Override public void onChanged(UserEntity userEntity) { if (userEntity.getCode()==200){ Intent intent = new Intent(RegisterActivity.this, LoginActivity.class); startActivity(intent); Toast.makeText(RegisterActivity.this, "注册成功", Toast.LENGTH_SHORT).show(); }else { Toast.makeText(RegisterActivity.this, "注册失败", Toast.LENGTH_SHORT).show(); } } }); } }