2025331日报
个人作业开发1
package com.example.dailyreport.ui.auth;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.example.dailyreport.R;
import com.example.dailyreport.model.User;
import com.example.dailyreport.network.ApiResponse;
import com.example.dailyreport.network.ApiService;
import com.example.dailyreport.network.RetrofitClient;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
public class LoginActivity extends AppCompatActivity {
private EditText etUsername, etPassword;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
etUsername = findViewById(R.id.etUsername);
etPassword = findViewById(R.id.etPassword);
Button btnLogin = findViewById(R.id.btnLogin);
Button btnRegister = findViewById(R.id.btnRegister);
btnLogin.setOnClickListener(v -> login());
btnRegister.setOnClickListener(v ->
startActivity(new Intent(this, RegisterActivity.class)));
}
private void login() {
String username = etUsername.getText().toString();
String password = etPassword.getText().toString();
if (username.isEmpty() || password.isEmpty()) {
Toast.makeText(this, "请填写完整信息", Toast.LENGTH_SHORT).show();
return;
}
User user = new User();
user.setName(username);
user.setPsw(password);
RetrofitClient.getInstance().getApiService().login(user)
.enqueue(new Callback<ApiResponse<User>>() {
@Override
public void onResponse(Call<ApiResponse<User>> call,
Response<ApiResponse<User>> response) {
ApiResponse<User> apiResponse = null;
if (response.isSuccessful() && response.body() != null) {
apiResponse = response.body();
// 增加更多日志输出
System.out.println("Response code: " + apiResponse.getCode());
System.out.println("Response msg: " + apiResponse.getMsg());
System.out.println("User data: " + (apiResponse.getData() != null ?
"ID=" + apiResponse.getData().getId() + ", Name=" +
apiResponse.getData().getName() : "null"));
// 检查code是否为字符串"200"
if ("200".equals(apiResponse.getCode())) {
User loginUser = apiResponse.getData();
if (loginUser != null) {
// Fix the Menu class reference - use your custom Menu class
Intent intent = new Intent(LoginActivity.this, com.example.dailyreport.ui.auth.Menu.class);
intent.putExtra("userId", loginUser.getId());
intent.putExtra("role", loginUser.getRole());
startActivity(intent);
finish();
}
} else {
String errorMsg = "登录失败";
try {
if (response.errorBody() != null) {
errorMsg = response.errorBody().string();
}
} catch (Exception e) {
e.printStackTrace();
}
Toast.makeText(LoginActivity.this,
errorMsg, Toast.LENGTH_SHORT).show();
}
} else {
Toast.makeText(LoginActivity.this,
"登录失败: " + apiResponse.getMsg(), Toast.LENGTH_SHORT).show();
}
}
@Override
public void onFailure(Call<ApiResponse<User>> call, Throwable t) {
Toast.makeText(LoginActivity.this,
"网络错误: " + t.getMessage(), Toast.LENGTH_SHORT).show();
}
});
}
}
package com.example.dailyreport.ui.auth;
import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.example.dailyreport.R;
import com.example.dailyreport.model.User;
import com.example.dailyreport.network.ApiResponse;
import com.example.dailyreport.network.RetrofitClient;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
public class RegisterActivity extends AppCompatActivity {
private EditText etId, etName, etPassword, etPhone, etClass;
private RadioButton rbStudent, rbTeacher; // 添加这行
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
initViews();
Button btnRegister = findViewById(R.id.btnRegister);
btnRegister.setOnClickListener(v -> register());
}
private void initViews() {
etId = findViewById(R.id.etId);
etName = findViewById(R.id.etName);
etPassword = findViewById(R.id.etPassword);
etPhone = findViewById(R.id.etPhone);
etClass = findViewById(R.id.etClass);
rbStudent = findViewById(R.id.rbStudent); // 添加这行
rbTeacher = findViewById(R.id.rbTeacher); // 添加这行
}
private void register() {
// 获取用户输入
String id = etId.getText().toString();
String username = etName.getText().toString();
String password = etPassword.getText().toString();
String phone = etPhone.getText().toString();
String sclass = etClass.getText().toString();
// 获取选中的角色
String role = rbStudent.isChecked() ? "STUDENT" : "TEACHER";
// 验证输入
if (id.isEmpty() || username.isEmpty() || password.isEmpty() || phone.isEmpty() || sclass.isEmpty()) {
Toast.makeText(this, "请填写完整信息", Toast.LENGTH_SHORT).show();
return;
}
// 创建用户对象
User user = new User();
user.setId(id);
user.setName(username);
user.setPsw(password);
user.setPhone(phone);
user.setSclass(sclass);
user.setRole(role);
// 发送注册请求
RetrofitClient.getInstance().getApiService().register(user)
.enqueue(new Callback<ApiResponse<User>>() {
@Override
public void onResponse(Call<ApiResponse<User>> call,
Response<ApiResponse<User>> response) {
if (response.isSuccessful() && response.body() != null) {
ApiResponse<User> apiResponse = response.body();
if ("200".equals(apiResponse.getCode())) {
Toast.makeText(RegisterActivity.this,
"注册成功", Toast.LENGTH_SHORT).show();
finish();
} else {
Toast.makeText(RegisterActivity.this,
apiResponse.getMsg(), Toast.LENGTH_SHORT).show();
}
}
}
@Override
public void onFailure(Call<ApiResponse<User>> call, Throwable t) {
Toast.makeText(RegisterActivity.this,
"网络错误: " + t.getMessage(), Toast.LENGTH_SHORT).show();
}
});
}
}
package com.example.dailyreport.ui.auth;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.example.dailyreport.R;
import com.example.dailyreport.ui.blog.DailySummaryActivity;
import com.example.dailyreport.ui.dailylog.DailyLogActivity;
import com.example.dailyreport.ui.statistics.StatisticsActivity;
import com.example.dailyreport.ui.weeklyplan.WeeklyPlanActivity;
public class Menu extends AppCompatActivity {
private Button btnWeeklyGoal;
private Button btnDailySummary;
private Button btnDailyLog;
private Button btnStatistics;
private Button btnDailySummaryQuery;
// 角色常量
private static final String ROLE_STUDENT = "STUDENT";
private static final String ROLE_TEACHER = "TEACHER";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_menu);
// 获取用户ID和角色
String userId = getIntent().getStringExtra("userId");
String role = getIntent().getStringExtra("role");
if (userId == null) {
Toast.makeText(this, "用户ID获取失败", Toast.LENGTH_SHORT).show();
finish();
return;
}
// 初始化按钮
initButtons();
// 根据角色设置按钮可见性
setupButtonsByRole(role);
// 设置按钮点击事件
setupButtonListeners(userId);
}
private void initButtons() {
btnWeeklyGoal = findViewById(R.id.btnWeeklyGoal);
btnDailySummary = findViewById(R.id.btnDailySummary);
btnDailyLog = findViewById(R.id.btnDailyLog);
btnStatistics = findViewById(R.id.btnStatistics);
btnDailySummaryQuery = findViewById(R.id.btnDailySummaryQuery);
}
private void setupButtonsByRole(String role) {
if (ROLE_STUDENT.equals(role)) {
// 学生角色:显示学生可见按钮,隐藏教师可见按钮
btnWeeklyGoal.setVisibility(View.VISIBLE);
btnDailySummary.setVisibility(View.VISIBLE);
btnDailyLog.setVisibility(View.VISIBLE);
btnStatistics.setVisibility(View.GONE);
btnDailySummaryQuery.setVisibility(View.GONE);
} else if (ROLE_TEACHER.equals(role)) {
// 教师角色:隐藏学生可见按钮,显示教师可见按钮
btnWeeklyGoal.setVisibility(View.GONE);
btnDailySummary.setVisibility(View.GONE);
btnDailyLog.setVisibility(View.GONE);
btnStatistics.setVisibility(View.VISIBLE);
btnDailySummaryQuery.setVisibility(View.VISIBLE);
} else {
// 默认情况:显示所有按钮
Toast.makeText(this, "未知角色,显示所有功能", Toast.LENGTH_SHORT).show();
}
}
private void setupButtonListeners(String userId) {
btnWeeklyGoal.setOnClickListener(v -> {
Intent intent = new Intent(Menu.this, WeeklyPlanActivity.class);
intent.putExtra("userId", userId);
startActivity(intent);
});
btnDailySummary.setOnClickListener(v -> {
Intent intent = new Intent(Menu.this, DailySummaryActivity.class);
intent.putExtra("userId", userId);
startActivity(intent);
});
btnDailyLog.setOnClickListener(v -> {
Intent intent = new Intent(Menu.this, DailyLogActivity.class);
intent.putExtra("userId", userId);
startActivity(intent);
});
// 为教师功能按钮添加点击事件
btnStatistics.setOnClickListener(v -> {
Intent intent = new Intent(Menu.this, StatisticsActivity.class);
intent.putExtra("userId", userId);
startActivity(intent);
});
btnDailySummaryQuery.setOnClickListener(v -> {
Intent intent = new Intent(Menu.this, DailySummaryQueryActivity.class);
startActivity(intent);
});
}
}

浙公网安备 33010602011771号