网络资源模板--Android Studio 实现学生信息管理
目录
一、项目演示
网络资源模板--基于Android studio 实现的学生信息管理
二、项目测试环境
三、项目关键源码
这段代码主要包含了 **按钮点击事件处理** 和 **退出提示对话框** 的实现。
### 1. **按钮点击事件处理 (`onClick`)**:
- 该方法根据不同按钮的点击事件跳转到不同的页面,具体来说:
- **`add_students`** 按钮跳转到 **`AddStudentsActivity`**(添加学生页面)。
- **`search_students`** 按钮跳转到 **`SearchStudentsActivity`**(查询学生页面)。
- **`mod_students`** 按钮跳转到 **`ModStudentsActivity`**(修改学生信息页面)。
- **`query_students`** 按钮跳转到 **`QueryStudentsActivity`**(查询学生信息页面)。
- **`delete_students`** 按钮跳转到 **`DeleteStudentsActivity`**(删除学生页面)。
- **`btn_back`** 按钮弹出一个退出提示对话框 (`DigLogShow`),询问用户是否确认退出。
### 2. **退出提示对话框 (`DigLogShow`)**:
- 该方法通过 **`AlertDialog`** 弹出一个退出提示框,询问用户是否确认退出应用。
- **"否"**:用户点击时不执行任何操作,保持在当前页面。
- **"是"**:用户点击后,系统会清除保存的登录信息(通过 `SharedPreferences`),并跳转回登录页面 (`LoginActivity`)。同时,显示一个 **"退出成功"** 的提示。
### 总结:
这段代码实现了用户操作的引导,基于按钮点击实现页面间的跳转,并且通过退出提示框增强了用户体验,避免了用户误操作导致的退出。
/**
* 按钮点击事件
* */
@Override
public void onClick(View v) {
int id=v.getId();
if(id==R.id.add_students){
Intent intent1=new Intent(MainActivity.this,AddStudentsActivity.class);
startActivity(intent1);
} else if (id== R.id.search_students) {
Intent intent2=new Intent(MainActivity.this,SearchStudentsActivity.class);
startActivity(intent2);
} else if (id== R.id.mod_students) {
Intent intent3=new Intent(MainActivity.this,ModStudentsActivity.class);
startActivity(intent3);
} else if (id== R.id.query_students) {
Intent intent4=new Intent(MainActivity.this,QueryStudentsActivity.class);
startActivity(intent4);
} else if (id==R.id.delete_students) {
Intent intent5=new Intent(MainActivity.this,DeleteStudentsActivity.class);
startActivity(intent5);
} else if (id== R.id.btn_back) {
DigLogShow();
}
}
/**
* 退出提示
* */
private void DigLogShow() {
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("退出提示")
.setMessage("是否退出?")
.setPositiveButton("否", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
})
.setNegativeButton("是", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent intent6=new Intent(MainActivity.this,LoginActivity.class);
SharedPreferences sharedPreferences = getSharedPreferences("zidong", Context.MODE_PRIVATE);
sharedPreferences.edit().clear().apply();
Toast.makeText(MainActivity.this,"退出成功!",Toast.LENGTH_LONG).show();
startActivity(intent6);
}
});
builder.create().show();
}
对应的xml'
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="vertical">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<TextView
android:id="@+id/main_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"
android:text="学生信息管理\n欢迎您"
android:layout_marginTop="30dp"
android:textColor="#000"
android:textSize="30sp"
android:textStyle="bold" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginTop="30dp"
android:layout_marginRight="50dp"
android:background="@drawable/student_logo" />
</RelativeLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_gravity="center"
android:layout_marginTop="70dp">
<Button
android:id="@+id/add_students"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:background="@drawable/login"
android:layout_gravity="center"
android:text="学生信息录入"
android:textColor="#fff"
android:textSize="20dp"
android:textStyle="bold" />
<Button
android:id="@+id/search_students"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_below="@id/add_students"
android:layout_centerInParent="true"
android:layout_marginTop="10dp"
android:background="@drawable/login"
android:layout_gravity="center"
android:text="浏览学生信息"
android:textColor="#fff"
android:textSize="20dp"
android:textStyle="bold" />
<Button
android:id="@+id/mod_students"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_below="@id/search_students"
android:layout_centerInParent="true"
android:layout_gravity="center"
android:layout_marginTop="10dp"
android:background="@drawable/login"
android:text="修改学生信息"
android:textColor="#fff"
android:textSize="20dp"
android:textStyle="bold" />
<Button
android:id="@+id/query_students"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_below="@id/mod_students"
android:layout_centerInParent="true"
android:layout_marginTop="10dp"
android:layout_gravity="center"
android:background="@drawable/login"
android:text="查询学生信息"
android:textColor="#fff"
android:textSize="20dp"
android:textStyle="bold" />
<Button
android:id="@+id/delete_students"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_below="@id/query_students"
android:layout_centerInParent="true"
android:layout_gravity="center"
android:layout_marginTop="10dp"
android:background="@drawable/login"
android:text="删除学生信息"
android:textColor="#fff"
android:textSize="20dp"
android:textStyle="bold"
/>
<Button
android:id="@+id/btn_back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/login"
android:text="退出"
android:textColor="#fff"
android:textSize="20dp"
android:layout_gravity="center"
android:layout_marginTop="50dp"/>
</LinearLayout>
</LinearLayout>
-
这段代码实现了一个 **添加学生信息** 的页面,主要功能包括 **添加** 和 **修改** 学生信息。
### 主要功能和流程:
1. **初始化数据 (`initData`)**:
- 当页面用于修改学生信息时,接收传入的学生信息(通过 `Intent`),并填充到相应的输入框中。
- 对于学号(`EtNumber`)输入框,若是修改操作,禁用输入框,防止用户修改学号。2. **按钮点击事件 (`onClick`)**:
- **返回按钮 (`BtnBack`)**:点击后返回主页面。
- **保存按钮 (`BtnSave`)**:
- **修改操作**:检查输入的姓名、学号等信息是否合法,如果合法则调用数据库方法更新学生信息,并显示修改成功的提示框。
- **添加操作**:检查输入的各项信息是否完整,如果有为空的字段,弹出提示。如果所有信息有效,检查学号是否重复,若不重复则保存学生信息并显示录入成功的提示框。3. **提示框**:
- **修改成功提示 (`showDeleteDialog2`)**:修改成功后弹出提示框,告知用户修改成功,并返回主页面。
- **录入成功提示 (`showDeleteDialog`)**:学生信息录入成功后弹出提示框,询问是否继续录入。如果选择“否”,返回主页面;如果选择“是”,清空输入框,准备录入下一条信息。### 总结:
- 该页面主要实现了学生信息的添加和修改功能,具有表单校验和学号重复检查。
- 用户操作流程清晰,通过提示框提供反馈信息,确保用户体验。
- 代码包含了常见的表单操作和数据校验,如防止学号重复、确保所有字段输入完整等。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_students);
tv_title=findViewById(R.id.tv_title);//绑定控件
BtnBack = findViewById(R.id.btn_back);
BtnSave = findViewById(R.id.btn_save);
BtnBack.setOnClickListener(this);
BtnSave.setOnClickListener(this);
EtNumber = findViewById(R.id.add_et_number);
EtName = findViewById(R.id.add_et_name);
EtYear = findViewById(R.id.add_et_year);
EtSex = findViewById(R.id.add_et_sex);
EtBirth = findViewById(R.id.add_et_birthday);
EtAddress = findViewById(R.id.add_et_address);
EtPhone = findViewById(R.id.add_et_phone);
dbStudents= new DbStudents(this);
mData = new ArrayList<>();
initData();
}
/**
* 保存修改的信息
* */
private void initData() {
Intent intent = getIntent();
if (intent != null) {
number = intent.getStringExtra("number");
if (number != null) {
tv_title.setText("修改学生信息");
BtnSave.setText("修 改");
EtNumber.setText(intent.getStringExtra("number"));
EtName.setText(intent.getStringExtra("name"));
EtYear.setText(intent.getStringExtra("year"));
EtSex.setText(intent.getStringExtra("sex"));
EtBirth.setText(intent.getStringExtra("birth"));
EtAddress.setText(intent.getStringExtra("address"));
EtPhone.setText(intent.getStringExtra("phone"));
// 禁止学号输入框编辑
EtNumber.setEnabled(false); // 禁用输入
EtNumber.setFocusable(false); // 使其不可聚焦,防止弹出软键盘
}
}
}
@Override
public void onClick(View v) {
int id=v.getId();
if(id==R.id.btn_back) {
Intent intent1 = new Intent(AddStudentsActivity.this, MainActivity.class);
startActivity(intent1);
} else if (id== R.id.btn_save) {
//输入
String number = EtNumber.getText().toString().trim();
String name = EtName.getText().toString().trim();
String year = EtYear.getText().toString().trim();
String sex = EtSex.getText().toString().trim();
String birth = EtBirth.getText().toString().trim();
String address = EtAddress.getText().toString().trim();
String phone = EtPhone.getText().toString().trim();
StudentsBean studentsBeans = dbStudents.QueryFromStudentByNumber(number);
if (number != null) {//修改操作
if (name.length() > 0) {
if (dbStudents.updateStudent(number, name, year,sex,birth,address,phone)) {
Toast.makeText(AddStudentsActivity.this,"修改成功",Toast.LENGTH_LONG).show();
setResult(2);
showDeleteDialog2();
}
} else {
Toast.makeText(AddStudentsActivity.this,"修改的内容不能为空!",Toast.LENGTH_LONG).show();
}
}
if (TextUtils.isEmpty(name)) {
Toast.makeText(AddStudentsActivity.this, "录入失败!请输入姓名", Toast.LENGTH_SHORT).show();
} else if (TextUtils.isEmpty(number)) {
Toast.makeText(AddStudentsActivity.this, "录入失败!请输入学号", Toast.LENGTH_SHORT).show();
} else if (TextUtils.isEmpty(year)) {
Toast.makeText(AddStudentsActivity.this, "录入失败!请输入年龄", Toast.LENGTH_SHORT).show();
} else if (TextUtils.isEmpty(sex)) {
Toast.makeText(AddStudentsActivity.this, "录入失败!请输入性别", Toast.LENGTH_SHORT).show();
} else if (TextUtils.isEmpty(birth)) {
Toast.makeText(AddStudentsActivity.this, "录入失败!请输入出生年月", Toast.LENGTH_SHORT).show();
} else if (TextUtils.isEmpty(address)) {
Toast.makeText(AddStudentsActivity.this, "录入失败!请输入地址", Toast.LENGTH_SHORT).show();
} else if (TextUtils.isEmpty(phone)) {
Toast.makeText(AddStudentsActivity.this, "录入失败!请输入电话", Toast.LENGTH_SHORT).show();
}else if (studentsBeans != null){
Toast.makeText(AddStudentsActivity.this, "学号重复", Toast.LENGTH_SHORT).show();
}
else {
System.out.println("是否为空: "+dbStudents);
dbStudents.insertStudents(number, name, year, sex, birth, address, phone);
showDeleteDialog();
}
}
}
/**
* 修改提示框
* */
private void showDeleteDialog2() {
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("修改成功提示")
.setMessage("已成功修改!")
.setPositiveButton("ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent intent=new Intent(AddStudentsActivity.this,MainActivity.class);
startActivity(intent);
}
});
builder.create().show();
}
/**
* 保存提示框
* */
private void showDeleteDialog() {
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("录入成功提示")
.setMessage("已成功录入!\n是否继续?")
.setPositiveButton("否", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent intent=new Intent(AddStudentsActivity.this,MainActivity.class);
startActivity(intent);
}
})
.setNegativeButton("是", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//将输入框清空
EtNumber.setText("");
EtName.setText("");
EtYear.setText("");
EtSex.setText("");
EtBirth.setText("");
EtAddress.setText("");
EtPhone.setText("");
}
});
builder.create().show();
}
四、项目源码
👇👇👇👇👇快捷方式👇👇👇👇👇
原文地址:https://blog.csdn.net/qq_29823791/article/details/144221732
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!