package com.bw.daymvvm1211; import androidx.lifecycle.Observer; import androidx.recyclerview.widget.StaggeredGridLayoutManager; import com.bw.daymvvm1211.adapter.FoodAdapter; import com.bw.daymvvm1211.databinding.ActivityMainBinding; import com.bw.daymvvm1211.entity.FoodEntity; import com.bw.daymvvm1211.food.FoodViewModel; import com.bw.daymvvm1211.view.BaseMVVMActivity; import java.util.List; public class DetailsActivity extends BaseMVVMActivity<ActivityMainBinding, FoodViewModel> { private FoodAdapter foodAdapter; @Override public void initData() { foodAdapter = new FoodAdapter(R.layout.item_food); dataBinding.recyclerView.setLayoutManager(new StaggeredGridLayoutManager(1,StaggeredGridLayoutManager.VERTICAL)); dataBinding.recyclerView.setAdapter(foodAdapter); viewModel.foodLiveData.observe(this, new Observer<FoodEntity>() { @Override public void onChanged(FoodEntity foodEntity) { if(foodEntity.getCode() == 200){ List<FoodEntity.DataBean> list = foodEntity.getData(); foodAdapter.getData().addAll(list); foodAdapter.notifyDataSetChanged(); } } }); } @Override public void initView() { viewModel.getFood(7,12); } @Override public Class<FoodViewModel> getViewModel() { return FoodViewModel.class; } @Override public int bindLayout() { return R.layout.activity_main; } }
package com.bw.daymvvm1211.login; import androidx.lifecycle.Observer; import android.content.Intent; import android.util.Log; import android.view.View; import android.widget.Toast; import com.bw.daymvvm1211.DetailsActivity; import com.bw.daymvvm1211.R; import com.bw.daymvvm1211.databinding.ActivityLoginBinding; import com.bw.daymvvm1211.entity.LoginEntity; import com.bw.daymvvm1211.register.RegisterActivity; import com.bw.daymvvm1211.view.BaseMVVMActivity; import com.google.gson.Gson; import java.util.HashMap; import java.util.Map; import okhttp3.MediaType; import okhttp3.RequestBody; public class LoginActivity extends BaseMVVMActivity<ActivityLoginBinding,LoginViewModel> { @Override public void initData() { dataBinding.login.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String account = dataBinding.loginAccount.getText().toString(); String password = dataBinding.loginPassword.getText().toString(); Map<String,String> map = new HashMap<>(); map.put("username",account); map.put("password",password); String json = new Gson().toJson(map); RequestBody body = RequestBody.create(MediaType.parse("application/json"),json); viewModel.login(body); } }); dataBinding.toRegister.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(LoginActivity.this, RegisterActivity.class); startActivity(intent); } }); } @Override public void initView() { viewModel.loginLiveData.observe(this, new Observer<LoginEntity>() { @Override public void onChanged(LoginEntity loginEntity) { if(loginEntity.getCode() == 200){ Intent intent = new Intent(LoginActivity.this, DetailsActivity.class); Toast.makeText(LoginActivity.this, ""+loginEntity.getMessage(), Toast.LENGTH_SHORT).show(); startActivity(intent); }else{ Toast.makeText(LoginActivity.this, "登录失败", Toast.LENGTH_SHORT).show(); Log.i("sss", "onChanged: "+loginEntity.getData().toString()); } } }); } @Override public Class<LoginViewModel> getViewModel() { return LoginViewModel.class; } @Override public int bindLayout() { return R.layout.activity_login; } }
package com.bw.daymvvm1211.register; import android.content.Intent; import android.view.View; import android.widget.Toast; import com.bw.daymvvm1211.R; import com.bw.daymvvm1211.databinding.ActivityRegisterBinding; import com.bw.daymvvm1211.login.LoginActivity; import com.bw.daymvvm1211.view.BaseMVVMActivity; import com.google.gson.Gson; import java.util.HashMap; import java.util.Map; import okhttp3.MediaType; import okhttp3.RequestBody; public class RegisterActivity extends BaseMVVMActivity<ActivityRegisterBinding, RegisterViewModel> { @Override public void initData() { dataBinding.register.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String account = dataBinding.registerAccount.getText().toString(); String password = dataBinding.registerPassword.getText().toString(); String rePassword = dataBinding.registerRePassword.getText().toString(); Map<String,String> map = new HashMap<>(); map.put("username",account); map.put("password",password); map.put("repassword",rePassword); String json = new Gson().toJson(map); RequestBody body = RequestBody.create(MediaType.parse("application/json"), json); //启动mvvm viewModel.register(body); } }); } @Override public void initView() { viewModel.registerLiveData.observe(this, registerEntity -> { if(registerEntity.getCode() == 200){ Intent intent = new Intent(RegisterActivity.this, LoginActivity.class); Toast.makeText(RegisterActivity.this, "注册成功", Toast.LENGTH_SHORT).show(); startActivity(intent); }else{ Toast.makeText(RegisterActivity.this, "注册失败", Toast.LENGTH_SHORT).show(); } }); } @Override public Class<RegisterViewModel> getViewModel() { return RegisterViewModel.class; } @Override public int bindLayout() { return R.layout.activity_register; } }