Khanh Hoang - Kenn
Kenn is a user experience designer and front end developer who enjoys creating beautiful and usable web and mobile experiences.
Mục tiêu:
Xây dựng chương trình cho phép nhập, xóa, sửa nhiều sinh viên, liệt kê danh sách sinh viên
Ghi chú:
Vì muốn bài lab gọn nhẹ đơn giản nên mình không lưu lại danh sách sinh viên vào bộ nhớ thiết bị, do đó khi tắt chương trình, danh sách bị xóa. Muốn lưu được thì đợi đến bài dataStorage sẽ biết.
Bước 1:
Thiết kế giao diện bao gồm:
Bước 2:
Tạo class student trong thư mục src
Mô tả:
Class student có:
Code cụ thể như sau:
public class student { private int student_id; private String student_name; static public int soluong; //Hàm tạo không đối số public student() { student_id=0; student_name=""; } //Hàm tạo 2 đối số public student(int id, String name) { student_id=id; student_name=name; } //Phương thức get, set public int getStudent_id() { return student_id; } public String getStudent_name() { return student_name; } public void setStudent_id(int id) { this.student_id=id; } public void setStudent_name(String name) { this.student_name= name; } //Trả về thông tin sinh viên public String toString() { return "Id:"+this.student_id+" - Name:"+this.student_name; }
Bước 3: Code phần quản lý danh sách sinh viên
Trong file MainActivity.java . Tạo 1 ArrayList listsv chứa danh sách các đối tượng sinh viên
ArrayList<student> listsv=new ArrayList<student>();
Hàm findStudentById tìm kiếm sinh viên bằng Id
public student findStudentById(int id, ArrayList<student> list_student) { for (student std : list_student) { if(std.getStudent_id()==id) return std; } return null; }
Hàm showListView dùng để hiển thị danh sách sinh viên lên listView
public void showListView(ArrayList<student> listsv) { tv_sl.setText("Số lượng : "+student.soluong); //Gán dữ liệu từ ArrayList vào ListView ArrayAdapter<student> array_adt=new ArrayAdapter<student>(getApplicationContext(), android.R.layout.simple_list_item_1 , listsv); lv.setAdapter(array_adt); }
Sự kiện OnItemClickListener chọn sinh viên từ danh sách sv trong ListView
lv.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { // TODO Auto-generated method stub student sv_click= (student) arg0.getItemAtPosition(arg2); et1.setText(sv_click.getStudent_id()+""); et2.setText(sv_click.getStudent_name()); } });
Bước 4: Code phần nhập, xóa, sửa ,trong nút thêm ta viết như sau
Lấy id và tên sinh viên từ dữ liệu người dùng nhập vào edittext
int id_sinhvien = Integer.parseInt(et1.getText().toString()); String ten_sinhvien = et2.getText().toString();
Xét nếu như id người dùng nhập vào chưa có trong danh sách sẽ thêm sinh viên đó.
if(findStudentById(id_sinhvien, listsv) == null) { student sv=new student(); student.soluong++; sv.setStudent_id(id_sinhvien); sv.setStudent_name(ten_sinhvien); listsv.add(sv); }
Tương tự ta viết code cho nút xóa và sửa, xóa ta dùng phương thức remove
listsv.remove(sv);
Sửa ta dùng phương thức set
listsv.set(index, sv);
Kết thúc.