MVVM登录注册,登陆成功跳转到视频详情接口的运用与练习

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;
    }
}

猜你喜欢

转载自blog.csdn.net/hu1647107413/article/details/134935194