Bài 25 : Củng cố kiến thức intent qua ví dụ quản lý nhân viên (P1)

Leave a Comment
- Mục tiêu của bài tập này:
——————————————————————————
- Thao tác nhuần nhuyễn với Intent
- Ôn tập lại các control thường hay sử dụng
- Nhuần nhuyễn với ListView
-  Xử lý Checked (radio, Checkbox) trong ListView
- Nhuần nhuyễn với Custom Layout
- Biết cách sử dụng Enum
- Cách sử dụng chung Layout cho các Activity
- … và đón nhận thêm một số ý tưởng sáng tạo trong lập trình.
——————————————————————————


- Bài này rất là khó và phức tạp, nhưng đổi lại nó rất hay. Tôi hi vọng bài tập này sẽ giúp ích cho các bạn rất nhiều trong việc khám phá Android. Vì vậy Tôi khuyên các bạn hãy chăm chỉ làm đi làm lại bài này.
- Mô tả chương trình:
+ Chương trình cho phép quản lý nhân viên + phòng ban.
+ Mỗi phòng ban sẽ có nhiều nhân viên, phòng ban cần lưu trữ (mã phòng ban, tên phòng ban)
+ Một phòng ban sẽ có Trưởng phòng và Phó phòng. Trưởng phòng thì chỉ có 1, phó phòng thì số lượng không giới hạn (hoặc không có)
+ Thông tin nhân viên : Mã nhân viên, tên nhân viên, giới tính (nam, nữ), chức vụ (trưởng phòng, phó phòng, nhân viên)
+ Chương trình cho phép:
  • Thêm/sửa/ xóa phòng ban
  • Thêm / sửa / xóa nhân viên
  • cho phép nhân viên chuyển phòng ban
  • cho phép thiết lập ban lãnh đạo phòng ban (trưởng phó)
  • và một số chức năng khác
Sau đây là demo giao diện chính của chương trình:
25_intent_0
- Tôi giải thích về màn hình chính như sau:
+ Nút “Lưu Phòng Ban“: Cho phép lưu phòng ban và cập nhật vào ListView. Nếu mã phòng ban đã tồn tại thì tự động cập nhật, còn mã phòng ban chưa tồn tại thì phải thêm mới.
+ Sự kiện nhấn trên ListView: nhấn vào phòng ban nào thì hiển thị lại thông tin của phòng ban đó vào phần edittext bên trên.
+ ListView phải sử dụng Custom Layout, Ta phải tự thiết kế Layout cho ListView bên trên:
* Mỗi phần tử ListView có chứa 2 TextView, TextView 1 dùng để hiển thị mã phòng ban và tên phòng ban, chú ý phải cho người sử dụng biết Phòng ban này có nhân viên hay chưa có, nếu có nhân viên thì có bao nhiêu người (xem hình trên).
* Mỗi phòng ban phải cho biết Trưởng Phòng và phó phòng là ai (xem hình)
* Ví dụ bạn nhìn vào phòng Kỹ Thuật: Bạn thấy thông tin phòng ban và số nhân viên trong phòng ban là 3. Và Trưởng Phòng tên là “Đoàn Ái Nương“. Có 2 Phó Phòng là “Trần Đạo Đức” và “Nguyễn Đại Tài“.
*Phòng dịch vụ thì chưa có nhân viên nào cả
*Phòng Truyền Thông thì có 3 nhân viên nhưng chỉ có 1 trưởng phòng là “Nguyễn Thị Téo“.
- Tiếp tục xử lý Context Menu cho ListView Phòng ban:
25_intent_1- Khi nhấn thật lâu vào một phòng ban nào đó, ví dụ trường hợp trên là phòng Kỹ Thuật, chương trình sẽ hiển thị context Menu có 4 chức năng:
1.  Thêm nhân viên
2.  Xem danh sách nhân viên
3. Lập trưởng/ phó phòng
4. và xóa phòng ban.
- Ứng với mỗi chức năng ta có:
1. Thêm nhân viên:
- Mặc định mỗi một nhân viên mới được tạo ra thì chỉ có chức vụ là Nhân Viên (không có chức quản lý):
25_intent_2
- Nút “xóa trắng “: cho phép xóa dữ liệu trên EditText và focus tới mã nhân viên
- Nút “Lưu nhân viên”, cho phép thêm mới nhân viên vào phòng ban, Giới Tính Nam, Nữ để hiển thị hình ảnh cho đúng.
- Sau khi bấm nút “Lưu nhân viên”, thì cập nhật lại danh sách phòng ban (cập nhập số lượng nhân viên cho phòng ban).
- Ví dụ ở hình trên bây giờ Tôi bấm “Lưu nhân viên”, màn hình này sẽ tắt đi để hiển thị lại màn hình chính, nhưng trong phòng ban Kỹ Thuật số lượng nhân viên sẽ tăng lên là 4, xem hình:
25_intent_3
2.  Xem danh sách nhân viên:
- Chương trình sẽ hiện thị danh sách nhân viên của phòng ban đang chọn, ví dụ trong trường hợp này là xem danh sách nhân viên của phòng ban Kỹ thuật:
25_intent_4
- Như bạn thấy đó. Màn hình xem danh sách nhân viên có các chức năng sau:
+ Nút mũi tên “BacK” cho phép trở về màn hình chính.
+Nhân viên có hình theo giới tính (nam, nữ)
+ Nhân viên có mô tả: Chức vụ, giới tình
+ Vậy ta cũng phải dùng Custom layout
- Bây giờ ta xem  chức năng  Context Menu cho ListVỉew của mục xem danh sách nhân viên:
25_intent_5
- Vậy màn hình này có 3 chức năng:
2.1 Sửa nhân viên
2.2 Chuyển phòng ban
2.3 xóa nhân viên
- Ta vào từng chức năng:
2.1 Sửa nhân viên:
- Ở ví dụ trên là ta nhấn thật lâu vào nhân viên tên “Trần Đạo Đức“, sau đó Context Menu hiển thị lên, ta chọn sửa nhân viên, màn hình sửa xuất hiện như sau (chú ý là Activity sửa nhân viên sử dụng chung Layout với Activity thêm nhân viên):
25_intent_6
- Thông tin của nhân viên “Trần Đạo Đức” sẽ được hiển thị như trên. Mã nhân viên sẽ cấm thay đổi, còn các chức năng khác là y xì như trong màn hình thêm mới nhân viên.
- Trong trường hợp này Tôi sửa “Trần Đạo Đức” thành “Trần Thế” và nhấn nút “Lưu nhân viên” thì màn hình này đóng lại để trở về màn hình xem danh sách, bạn quan sát sự thay đổi như sau:
25_intent_7
2.2 Chuyển phòng ban:
- Bây giờ ta vào chức năng chuyển phòng ban cho nhân viên. Chương trình sẽ hiển thị danh sách phòng ban (có RadioButton ở bên cạnh cho phép chuyển phòng ban).
- Bây giờ Tôi chọn “Trần Thế” và chuyển qua phòng Dịch vụ (Nhấn thật lâu vào Trần Thế, context menu hiển thị ra thì ta chọn Chức năng Chuyển phòng ban):
25_intent_8
- Sau khi chọn phòng ban để chuyển, nhấn nút có hình “Apply”, chương trình sẽ quay lại màn hình xem danh sách nhân viên, lúc này Bạn không còn thấy nhân viên Trần Thế nữa, bởi vì nhân viên này đã được chuyển qua phòng dịch vụ:
25_intent_9
- Bạn có thể kiểm tra lại bằng cách bấm nút “Back” để trở về màn hình chính, trong màn hình chính sẽ xuất hiện 1 nhân viên mà ta vừa chuyển:
25_intent_10
2.3 xóa nhân viên
- bây giờ ta qua chức năng Xóa nhân viên trong màn hình xem danh sách, chương trình sẽ hiển thị màn hình hỏi xem có chắc chắn muốn xóa hay không? nhấn đồng ý để xóa:
- Ví dụ Tôi chọn nhân viên tên “Trần Duy Thanh” rồi xóa:
25_intent_11
3. Lập trưởng/ phó phòng:
- bây giờ ta qua chức năng Lập trưởng / phó phòng cho mỗi phòng ban (tại màn hình chính).
- Khi context Menu hiển thị lên thì ta chọn “Lập trưởng. phó phòng”:
- Ví dụ, bây giờ Tôi nhấn thật lâu vào phòng ban “Truyền Thông”, sau đó Tôi thiết lập trưởng phó phòng lại cho phòng ban này, xem giao diện bên dưới:
25_intent_12
- Sau khi chọn “lập trưởng/ phó phòng”, thì chương trình hiển thị màn hình thiết lập như bên dưới:
25_intent_13
- Trưởng phòng thì chỉ cho phép chọn 1 (dùng Radio Button)
- Phó phòng cho phép chọn tùy ý (dùng Checkbox)
- Ta dùng layout có sẵn của android (không phải custom layout), chỉ viết lại sự kiện onclick cho ListView nó hiểu mà thôi.
- Sau khi chọn Trưởng/ phó, click “Apply ” thì chương trình trở về màn hình chính,  quan sát:
25_intent_14
- Bạn thấy đó, Trưởng phòng và phó phòng đã được cập nhật.
4. và xóa phòng ban.
- Ta qua chức năng cuối cùng: Xóa phòng ban, tưởng tự như xóa nhân viên. CHương trình cũng hỏi ta có chắc chắn muốn xóa hay không?
25_intent_15
- Như vậy Tôi đã mô tả xong yêu cầu của bài toán. Bây giờ Tôi đi chi tiết vào coding:
Xem tiếp P2

0 nhận xét:

Đăng nhận xét