数据存储
创建如图所示的六个包
MainActivity里放着所有activity类
adapter里
dao里
entity里
provider里
utils里
layout包里
activity_main里包含四个按钮,一个listview
效果图如下
activity_insert里包含两个按钮,一个Spinner,三个TextView,两个EditView
效果图如下
item_student里包含三个TextView
效果图如下
完成listView的adapter的编写,使activity_main能如item_student里一样显示数据
先定义所有的控件
private Button btnAdd, btnRevise, btnDelete,btnPeople;
private ListView lvStudent;
private static final int ADD_REQUEST = 100;
private static final int MODIFY_REQUEST = 101;
//private StudentAdapter studentAdapter;
private MyCursorAdapter studentAdapter;
private StudentDAOImpl dao;
private List<Student> students;
private List<String> cursors;
private StudentService studentService;
private int selectedPos;
private Student selectedStudent;
将所有需要用到的数据都显示,采用的是接口的方式,至于adapter的方式使用了两种,一种是普通的StudentAdapter,已经隐藏该代码,代码所用的是另一种是新加的MyCursorAdapter,比较之前的在编写上更加简便
//studentAdapter = new StudentAdapter(students);
studentAdapter = new MyCursorAdapter(this,dao.selectByCursor());
lvStudent.setAdapter(studentAdapter);
btnAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, InsertActivity.class);
intent.putExtra(“flag”,“添加”);
startActivityForResult(intent, ADD_REQUEST);
}
});
lvStudent.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(final AdapterView<?> parent, View view, final int position, long id) {
selectedPos = position;
//selectedStudent = (Student) parent.getItemAtPosition(position);
Cursor cursor = (Cursor) parent.getItemAtPosition(position);
selectedStudent = new Student();
selectedStudent.setId(cursor.getInt((cursor.getColumnIndex("_id"))));
selectedStudent.setName(cursor.getString(cursor.getColumnIndex("name")));
selectedStudent.setAge(cursor.getInt(cursor.getColumnIndex("age")));
selectedStudent.setClass_name(cursor.getString(cursor.getColumnIndex("class_name")));
listView用了setOnClickListener,setOnItemClickListener来做点击事件,用listView所显示的数据需要点击才可以实现功能,btn_add是添加的功能,因为不需要点击就可以直接添加所以写在setOnClickListener外面,包含在内的删除,修改按钮则需要点击才可以实现功能
btnRevise.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, InsertActivity.class);
intent.putExtra(“flag”,“修改”);
Bundle bundle = new Bundle();
bundle.putSerializable(“student”, selectedStudent);
intent.putExtras(bundle);
startActivityForResult(intent, MODIFY_REQUEST);
}
});
btnDelete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
studentService.delete(selectedStudent.get_Id());
// students.remove(position);
// studentAdapter.notifyDataSetChanged();
studentAdapter.changeCursor(dao.select