今天的任务:完成了个人作业中web端和android端的连接
代码如下package com.example.mywork;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.example.mywork.pojo.User;
import com.example.mywork.service.UserService;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
public class LoginActivity extends AppCompatActivity {
private EditText etUserId, etPassword;
private Button btnLogin, btnGoToRegister;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
etUserId = findViewById(R.id.etUserId);
etPassword = findViewById(R.id.etPassword);
btnLogin = findViewById(R.id.btnLogin);
btnGoToRegister = findViewById(R.id.btnGoToRegister);
btnLogin.setOnClickListener(v -> loginUser());
btnGoToRegister.setOnClickListener(v -> {
Intent intent = new Intent(LoginActivity.this, RegisterActivity.class);
startActivity(intent);
});
}
private void loginUser() {
String userId = etUserId.getText().toString();
String password = etPassword.getText().toString();
UserService apiService = RetrofitClient.getUserService();
Call<User> call = apiService.loginUser(userId, password);
call.enqueue(new Callback<User>() {
@Override
public void onResponse(Call<User> call, Response<User> response) {
if (response.isSuccessful()) {
User user = response.body();
if (user != null) {
String role = user.getUserRole();
Toast.makeText(LoginActivity.this, "登录成功,角色: " + role, Toast.LENGTH_SHORT).show();
// 根据角色跳转到不同页面
Intent intent;
switch (role) {
case "学生":
intent = new Intent(LoginActivity.this, StudentActivity.class);
break;
case "老师":
intent = new Intent(LoginActivity.this, TeacherActivity.class);
break;
default:
intent = new Intent(LoginActivity.this, LoginActivity.class);
break;
}
startActivity(intent);
} else {
Toast.makeText(LoginActivity.this, "用户信息为空", Toast.LENGTH_SHORT).show();
}
} else {
Toast.makeText(LoginActivity.this, "登录失败", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onFailure(Call<User> call, Throwable t) {
Toast.makeText(LoginActivity.this, "网络错误: " + t.getMessage(), Toast.LENGTH_SHORT).show();
}
});
}
}package com.example.mywork;
import android.os.Bundle;
import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
setContentView(R.layout.activity_main);
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});
}
}package com.example.mywork;
import android.os.Bundle;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import com.example.mywork.pojo.DailyRecord;
import com.google.gson.Gson;
public class RecordDetailActivity extends AppCompatActivity {
private TextView tvPlanName, tvUserId, tvEstimatedTime, tvRequirementAnalysis, tvDesign, tvCoding, tvWorkload, tvSummary;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_record_detail);
tvPlanName = findViewById(R.id.tvPlanName);
tvUserId = findViewById(R.id.tvUserId);
tvEstimatedTime = findViewById(R.id.tvEstimatedTime);
tvRequirementAnalysis = findViewById(R.id.tvRequirementAnalysis);
tvDesign = findViewById(R.id.tvDesign);
tvCoding = findViewById(R.id.tvCoding);
tvWorkload = findViewById(R.id.tvWorkload);
tvSummary = findViewById(R.id.tvSummary);
// 获取传递的记录数据
String recordJson = getIntent().getStringExtra("record");
DailyRecord record = new Gson().fromJson(recordJson, DailyRecord.class);
// 显示记录详情
tvPlanName.setText(record.getPlanName());
tvUserId.setText(record.getUserId());
tvEstimatedTime.setText(record.getEstimatedTime());
tvRequirementAnalysis.setText(record.getRequirementAnalysis());
tvDesign.setText(record.getDesign());
tvCoding.setText(record.getCoding());
tvWorkload.setText(record.getWorkload());
tvSummary.setText(record.getSummary());
}
}package com.example.mywork;
import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.example.mywork.pojo.User;
import com.example.mywork.service.UserService;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
public class RegisterActivity extends AppCompatActivity {
private EditText etUserId, etUsername, etPhoneNumber, etUserUnit, etPassword;
private Spinner spUserRole;
private Button btnRegister;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
etUserId = findViewById(R.id.etUserId);
etUsername = findViewById(R.id.etUsername);
etPhoneNumber = findViewById(R.id.etPhoneNumber);
etUserUnit = findViewById(R.id.etUserUnit);
spUserRole = findViewById(R.id.spUserRole);
etPassword = findViewById(R.id.etPassword);
btnRegister = findViewById(R.id.btnRegister);
btnRegister.setOnClickListener(v -> registerUser());
}
private void registerUser() {
String userId = etUserId.getText().toString();
String username = etUsername.getText().toString();
String phoneNumber = etPhoneNumber.getText().toString();
String userUnit = etUserUnit.getText().toString();
String userRole = spUserRole.getSelectedItem().toString();
String password = etPassword.getText().toString();
User user = new User(userId, username, phoneNumber, userUnit, userRole, password);
UserService apiService = RetrofitClient.getUserService();
Call<User> call = apiService.registerUser(user);
call.enqueue(new Callback<User>() {
@Override
public void onResponse(Call<User> call, Response<User> response) {
if (response.isSuccessful()) {
Toast.makeText(RegisterActivity.this, "注册成功", Toast.LENGTH_SHORT).show();
finish(); // 返回登录界面
} else {
Toast.makeText(RegisterActivity.this, "注册失败", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onFailure(Call<User> call, Throwable t) {
Toast.makeText(RegisterActivity.this, "网络错误: " + t.getMessage(), Toast.LENGTH_SHORT).show();
}
});
}
}
以上为部分android端代码
遇到的困难:web端没遇到什么问题,android端连接到手机上时因为部分图片分辨率不支持导致手机上无法显示,更改分辨率后可以完成
浙公网安备 33010602011771号