Các Constructor: Tạo đối tượng File từ đường dẫn tuyệt đối public File(String pathname) ví dụ: File f = new File(“C:\\Java\\vd1.java”); Tạo đối tượng File từ tên đường dẫn và tên tập tin tách biệt public File(String parent, String child) ví dụ: File f = new File(“C:\\Java”, “vd1.java”); Tạo đối tượng File từ một đối tượng File khác pu...
24 trang | Chia sẻ: dntpro1256 | Ngày: 23/11/2020 | Lượt xem: 1085 | Lượt tải: 0
Interface: giao tiếp của một lớp, là phần đặc tả (không có phần cài đặt cụ thể) của lớp, nó chứa các khai báo phương thức và thuộc tính để bên ngoài có thể truy xuất được. (java, C#, ) Lớp sẽ cài đặt các phương thức trong interface. Trong lập trình hiện đại các đối tượng không đưa ra cách truy cập cho một lớp, thay vào đó cung cấp các inte...
31 trang | Chia sẻ: dntpro1256 | Ngày: 23/11/2020 | Lượt xem: 947 | Lượt tải: 0
Khi có lỗi phương thức sẽ ném ra một exception
• Việc kiểm soát exception giúp chương trình kiểm soát được những
trường hợp ngoại lệ và xử lý lỗi.
• Những lỗi không kiểm soát được sẽ có những ảnh hưởng bất lợi trong
chương trình.
• Dùng từ khóa throws để chỉ định những loại exception mà phương thức
có thể ném ra.
64 trang | Chia sẻ: dntpro1256 | Ngày: 23/11/2020 | Lượt xem: 1009 | Lượt tải: 0
Code không hề khó hiểu, và mình cũng đã add comment. Chỉ cần lưu ý ở đây là Toast là lớp để hiển thị một thông báo đơn giản trong 1 khoảng thời gian cố định, và ko thể thay đổi thời gian này T_T (why???) chỉ có thể chọn giữa LENGTH_SHORT với LENGTH_LONG
5 trang | Chia sẻ: dntpro1256 | Ngày: 23/11/2020 | Lượt xem: 902 | Lượt tải: 0
Layout của Activity2 tương tự như Activity1, nhưng Button bây giờ là để gọi BroadCast Receiver. Ngoài ra mình dùng EditText để hiển thị value nhận được (do nó có cái đường bao ngoài đẹp hơn TextView ^_^) nên không cho phép nhập giá trị vào EditText này
5 trang | Chia sẻ: dntpro1256 | Ngày: 23/11/2020 | Lượt xem: 913 | Lượt tải: 0
Layout cho Activity1 bao gồm 1 LinearLayout chứa 1 TextView, 1 EditText để nhập giá trị (đã giới hạn kiểu nhập là number), và 1 RelativeLayout có 1 Button để khởi chạy Activity2. Mình sử dụng RelaytiveLayout để có thể xếp Button này xuống phía cuối của giao diện.
5 trang | Chia sẻ: dntpro1256 | Ngày: 23/11/2020 | Lượt xem: 952 | Lượt tải: 0
Các bạn có thể lưu ý là thay vì sử dụng ArrayList
5 trang | Chia sẻ: dntpro1256 | Ngày: 23/11/2020 | Lượt xem: 1027 | Lượt tải: 0
ListWorkAdapter sẽ được sử dụng thay thế cho ArrayAdapter được bind với ListView. Thông thường ArrayAdapter chỉ cho hiển thị String bằng TextView, nhưng với việc kế thừa và override phương thức getView, ta có thể định nghĩa lại hiển thị cho các thành phần của ListView.
5 trang | Chia sẻ: dntpro1256 | Ngày: 23/11/2020 | Lượt xem: 1029 | Lượt tải: 0
Custom ViewGroup của chúng ta ở đây khá đơn giản, đó là 1 LinearLayout chứa 2 thành phần: 1 CheckBox và 1 LinearLayout khác gồm 2 TextView để hiển thị nội dung công việc và thời gian. B3: Đã xong giao diện cho custom ViewGroup, chúng ta sẽ thiết kế giao diện cho chương trình trong main.xml. Ở đây mình dùng lại giao diện của Example 2 trong bài...
5 trang | Chia sẻ: dntpro1256 | Ngày: 23/11/2020 | Lượt xem: 927 | Lượt tải: 0
Tiếp theo là android.R.layout.simple_list_item_1, đối này định nghĩa cách thể hiện item (ở đây là String) trong List View. Các bạn hãy ghi nhớ android.R.* là các tài nguyên (resource) có sẵn của Android cho phép bạn truy cập và sử dụng. Sau này khi hướng dẫn tạo custom View cho List View mình sẽ đề cập lại vấn đề này. Cuối cùng arrayWork chính ...
5 trang | Chia sẻ: dntpro1256 | Ngày: 23/11/2020 | Lượt xem: 917 | Lượt tải: 0