- ContextMenu là một trong những công cụ rất hữu ích do Android cung cấp , khác với OptionMenu thì chúng ta cần phải đăng ký ContextMenu cho những đối tượng mà khi nhấn và giữ lâu(long-click) vào đối tượng đó thì ContextMenu sẽ được tạo ra và hiển thị.
- Trong bài này mình sẽ tạo một ContextMenu hiển thị khi long-click vào TextView để đổi màu chữ.
Đầu tiên tạo file xml giao diện như thế này :
- Sau đó các bạn tạo một file menu resource trong thư mục res->menu (ở đây mình tạo file menu tên mycontextmenu.xml). Tạo các items tương ứng với các màu muốn đổi :
- Sau khi menu rồi chúng ta chuyển qua MainActivity.java để đăng ký ContextMenu cho TextView vừa tạo ra và thực hiện sự kiện onCreateContextMenu() để tùy chỉnh lại menu đó :
- Dùng hàm getMenuInflater() để tạo ra một MenuInflater, sau đó inflate(R.menu.mymenucontext, menu) tham số thứ nhất là file menu resource chúng ta đã tạo trong thư mục res-menu , tham số thứ hai là ContextMenu được tao ra khi long-click vào TextView.
-Tiếp theo ta gán sự kiện OnContextItemSelected() để đổi màu chữ khi click vào các Items.
- Hàm onContextItemSelected() có một tham số là Item được click, dùng hàm getItemId() để lấy ra Id của Item đó và ta dùng Switch/case để so sánh tìm xem Item được click là Item nào và dùng hàm setTextColor() để đổi màu chữ.
- Sau khi hoàn thành chúng ta sẽ tạo được menu thế này khi long-click vào TextView.
- Chọn Item BLUE chữ đổi sang màu xanh!
- Sau khi hoàn thành chúng ta sẽ tạo được menu thế này khi long-click vào TextView.
- Chọn Item BLUE chữ đổi sang màu xanh!
Vậy là chúng ta đã tạo xong một ContextMenu trong Android rất đơn giản. Good Look!






Không có nhận xét nào:
Đăng nhận xét