作业之SQLite

这次的作业就带有总结性了,是要结合本任务所学内容,将学生信息存入数据库,显示所有学生信息列表,删除数据库表中第一条信息。
界面如下图所示:

首先这是界面布局代码:

    <Button
        android:id="@+id/add"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1.34"
        android:text="增加新纪录"
        android:textSize="20dp"/>
    <Button
        android:id="@+id/delete"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="2"
        android:text="删除第一条记录"
        android:textSize="20dp"/>
</LinearLayout>
<ListView
    android:id="@+id/list_view"
    android:layout_width="match_parent"
    android:choiceMode="singleChoice"
    android:listSelector="#ffaa00"
    android:layout_weight="1"
    android:layout_height="0dp" />

</>

获取相关数据:
public class Student implements Serializable {
private int _id;
private String name;
public Student(){
}
public Student(String name){
this.name=name;
}

public int get_id() {
return _id;
}

public void set_id(int _id) {
this._id = _id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}
}
public class StudentDAO {
private Context context;
private MyDBHelper helper;
private SQLiteDatabase db;

public StudentDAO(Context context) {
helper = new MyDBHelper(context);
}

public void insert(Student student){
db = helper.getWritableDatabase();

ContentValues values = new ContentValues();
values.put("name", student.getName());

db.insert("student", null, values);
}

public Cursor selectAll() {
db = helper.getReadableDatabase();
Cursor cursor = db.query("student",null,null,null,null,null,null);
return cursor;
}
public void delete(int id){
db = helper.getWritableDatabase();

db.delete("student","_id=?",new String[]{String.valueOf(id)});
}
}
public class MyDBHelper extends SQLiteOpenHelper {

private String sql="create table student(_id integer primary key autoincrement,"
+"name text not null ,classmate text not null,age integer)";

public MyDBHelper(Context context) {
super(context,"studentInfo",null,1);
}

@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(sql);
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("drop table if exists stdent");
onCreate(db);
}
}
JAVA代码:

studentList = (ListView) findViewById(R.id.list_view);
etname=(EditText)findViewById(R.id.et_name);
btnzj = (Button) findViewById(R.id.btn_zj);
btnzj.setOnClickListener(this);
btnsc = (Button) findViewById(R.id.btn_sc);
btnsc.setOnClickListener(this);
studentDao = new StudentDAO(this);
if(cursor != null) {
adapter = new MyCursorAdapter(this, cursor);
studentList.setAdapter(adapter);
}

studentList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
        Cursor cursor = (Cursor) adapterView.getItemAtPosition(i);
        if(cursor != null) {
            cursor.moveToPosition(i);
            student = new Student();
            student.setName(cursor.getString(cursor.getColumnIndex("name")));
        }
    }
});

}

public void onClick(View view) {
    switch (view.getId()) {
        case R.id.btn_zj:
            String name = etname.getText().toString();
            
            if (TextUtils.isEmpty(name)) {
                Toast.makeText(MainActivity.this, "姓名不能为空", Toast.LENGTH_SHORT).show();
                return;
            }
                          Student student = new Student(name);
          
            StudentDAO studentDAO = new StudentDAO(this);
            studentDAO.insert(student);
            Cursor cursor = studentDao.selectAll();
            adapter.changeCursor(cursor);
            Toast.makeText(this, "添加成功", Toast.LENGTH_SHORT).show();
            break;
        case R.id.btn_sc:
            if (student!= null) {
                cursor.moveToFirst();
                student = new Student();
                student.set_id(cursor.getInt(cursor.getColumnIndex("_id")));
                studentDao.delete(student.get_id());
                studentDao = new StudentDAO(this);
                cursor = studentDao.selectAll();
                adapter = new MyCursorAdapter(this, cursor);
                studentList.setAdapter(adapter);
                Toast.makeText(MainActivity.this, "删除成功", Toast.LENGTH_SHORT).show();
            }
                Toast.makeText(MainActivity.this, "记录为空", Toast.LENGTH_SHORT).show();
            break;
    }

    }

}

posted @ 2017-05-16 21:50  小太阳呀  阅读(155)  评论(0编辑  收藏  举报