写一个Android学生信息管理系统实例
时间: 2023-11-21 19:21:36 浏览: 50
好的,以下是一个简单的Android学生信息管理系统实例的代码:
首先,我们需要创建一个MainActivity来作为应用程序的主界面。在该Activity中,我们可以添加按钮来实现添加、删除、修改和查询学生信息的功能。
```java
public class MainActivity extends AppCompatActivity {
private Button addBtn, deleteBtn, updateBtn, queryBtn;
private EditText nameEt, ageEt, phoneEt, emailEt;
private ListView studentListView;
private SQLiteDatabase db;
private StudentAdapter studentAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
addBtn = findViewById(R.id.add_btn);
deleteBtn = findViewById(R.id.delete_btn);
updateBtn = findViewById(R.id.update_btn);
queryBtn = findViewById(R.id.query_btn);
nameEt = findViewById(R.id.name_et);
ageEt = findViewById(R.id.age_et);
phoneEt = findViewById(R.id.phone_et);
emailEt = findViewById(R.id.email_et);
studentListView = findViewById(R.id.student_list_view);
// 创建或打开数据库
db = openOrCreateDatabase("student.db", MODE_PRIVATE, null);
db.execSQL("CREATE TABLE IF NOT EXISTS student(_id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER, phone TEXT, email TEXT)");
// 设置ListView的适配器
studentAdapter = new StudentAdapter(this);
studentListView.setAdapter(studentAdapter);
// 添加按钮点击事件
addBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String name = nameEt.getText().toString();
int age = Integer.parseInt(ageEt.getText().toString());
String phone = phoneEt.getText().toString();
String email = emailEt.getText().toString();
ContentValues cv = new ContentValues();
cv.put("name", name);
cv.put("age", age);
cv.put("phone", phone);
cv.put("email", email);
db.insert("student", null, cv);
studentAdapter.notifyDataSetChanged();
}
});
// 删除按钮点击事件
deleteBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String name = nameEt.getText().toString();
db.delete("student", "name=?", new String[]{name});
studentAdapter.notifyDataSetChanged();
}
});
// 修改按钮点击事件
updateBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String name = nameEt.getText().toString();
int age = Integer.parseInt(ageEt.getText().toString());
String phone = phoneEt.getText().toString();
String email = emailEt.getText().toString();
ContentValues cv = new ContentValues();
cv.put("age", age);
cv.put("phone", phone);
cv.put("email", email);
db.update("student", cv, "name=?", new String[]{name});
studentAdapter.notifyDataSetChanged();
}
});
// 查询按钮点击事件
queryBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String name = nameEt.getText().toString();
Cursor cursor = db.query("student", null, "name=?", new String[]{name}, null, null, "_id DESC");
if (cursor.moveToFirst()) {
int age = cursor.getInt(cursor.getColumnIndex("age"));
String phone = cursor.getString(cursor.getColumnIndex("phone"));
String email = cursor.getString(cursor.getColumnIndex("email"));
ageEt.setText(age + "");
phoneEt.setText(phone);
emailEt.setText(email);
} else {
ageEt.setText("");
phoneEt.setText("");
emailEt.setText("");
Toast.makeText(MainActivity.this, "没有找到该学生信息", Toast.LENGTH_SHORT).show();
}
cursor.close();
}
});
}
// 自定义ListView的适配器
private class StudentAdapter extends BaseAdapter {
private Context context;
private Cursor cursor;
public StudentAdapter(Context context) {
this.context = context;
cursor = db.query("student", null, null, null, null, null, "_id DESC");
}
@Override
public int getCount() {
return cursor.getCount();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = LayoutInflater.from(context).inflate(R.layout.student_list_item, null);
}
TextView nameTv = convertView.findViewById(R.id.name_tv);
TextView ageTv = convertView.findViewById(R.id.age_tv);
TextView phoneTv = convertView.findViewById(R.id.phone_tv);
TextView emailTv = convertView.findViewById(R.id.email_tv);
cursor.moveToPosition(position);
String name = cursor.getString(cursor.getColumnIndex("name"));
int age = cursor.getInt(cursor.getColumnIndex("age"));
String phone = cursor.getString(cursor.getColumnIndex("phone"));
String email = cursor.getString(cursor.getColumnIndex("email"));
nameTv.setText(name);
ageTv.setText(age + "");
phoneTv.setText(phone);
emailTv.setText(email);
return convertView;
}
}
}
```
在布局文件中,我们需要添加一个ListView和一些EditText和Button来实现添加、删除、修改和查询学生信息的功能。
```xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="16dp">
<EditText
android:id="@+id/name_et"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:hint="姓名" />
<EditText
android:id="@+id/age_et"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:hint="年龄" />
<EditText
android:id="@+id/phone_et"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:hint="电话" />
<EditText
android:id="@+id/email_et"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:hint="邮箱" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/name_et"
android:layout_marginTop="16dp"
android:layout_centerHorizontal="true"
android:orientation="horizontal">
<Button
android:id="@+id/add_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="添加" />
<Button
android:id="@+id/delete_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="删除" />
<Button
android:id="@+id/update_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="修改" />
<Button
android:id="@+id/query_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="查询" />
</LinearLayout>
<ListView
android:id="@+id/student_list_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/add_btn" />
</RelativeLayout>
```
最后,我们需要创建一个用于显示每个学生信息的ListView的适配器StudentAdapter。在该适配器中,我们需要从数据库中读取学生信息,然后将它们显示在ListView中。
```xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="16dp">
<TextView
android:id="@+id/name_tv"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="姓名"
android:textSize="16sp" />
<TextView
android:id="@+id/age_tv"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="年龄"
android:textSize="16sp" />
<TextView
android:id="@+id/phone_tv"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="电话"
android:textSize="16sp" />
<TextView
android:id="@+id/email_tv"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="邮箱"
android:textSize="16sp" />
</LinearLayout>
```
这样,我们就完成了一个简单的Android学生信息管理系统实例。