先简单说下这次作业:个人感觉这次作业比较麻烦,难度上还好(估计是因为上这次课时是有史以来听得最认真的一次的缘故)
言归正传,要想实现信息显示,就得先创建数据库
我创建了一个微型的
public void insert(Student student) { // 1. 打开数据库 db = helper.getWritableDatabase(); // 第一种方法 // 2. 生成数据集合 ContentValues values = new ContentValues(); values.put("name", student.getName()); values.put("classmate", student.getClassmate()); values.put("age", student.getAge()); // 3. 执行语句 db.insert("student", null, values); // 第二种方法 // 直接执行SQL语句 String sql = "insert into student(name, classmate, age) values(?,?,?)"; db.execSQL(sql, new Object[]{ student.getName(), student.getClassmate(), student.getAge()}); }
然后是插入数据
// 事件处理 @Override public void onClick(View view) { switch (view.getId()) { case R.id.btn_confirm: // 获取输入的值 String name = etName.getText().toString(); String classmate = etClassmate.getText().toString(); int age = Integer.valueOf(etAge.getText().toString()); // 对必填项作非空判断 if(TextUtils.isEmpty(name) || TextUtils.isEmpty(classmate)) { Toast.makeText(this, "姓名、班级不能为空", Toast.LENGTH_SHORT).show(); return; } // 将这些数据存储到数据库 // 2. 调用StudentDAO的insert()方法插入到数据库 StudentDAO studentDAO = new StudentDAO(this); if(flag) { // 1. 组装Student对象 Student student = new Student(name, classmate, age); studentDAO.insert(student); } else { //修改 if(student != null) { student.setName(name); student.setClassmate(classmate); student.setAge(age); studentDAO.update(student); } } // 跳转到原来的主界面刷新列表 setResult(2001); // resultCode:2001 finish(); } }
接下来是主界面的Java
@Override public void onClick(View view) { Intent intent = new Intent(MainActivity.this, InsertActivity.class); switch (view.getId()) { case R.id.btn_add: // 跳转到添加界面 intent.putExtra("flag", true); //flag: 用于判断是添加还是修改,true:添加 startActivityForResult(intent, 1001); break; case R.id.btn_update: if(student != null) { // 将选中的Student传给InsertActivity Bundle bundle = new Bundle(); bundle.putSerializable("student", student); intent.putExtras(bundle); intent.putExtra("flag", false); startActivityForResult(intent, 1001); } else { Toast.makeText(MainActivity.this, "请选择一条数据", Toast.LENGTH_SHORT).show(); } break; } }
END