Trong bài học lập trình android này, các bạn sẽ được tìm hiểu về cách hiển thị và xử lý Menu trong Android.

1. Hiển thị một trình đơn tùy chọn

Các mã đầu tiên ví dụ dưới đây cho thấy làm thế nào để hiển thị một trình đơn tùy chọn. Để làm điều đó, mã này sẽ ghi đè các phương pháp onCreateOptionsMenu. Phương pháp này là một phương pháp vòng đời của một hoạt động mà Android gọi trước khi nó cần để hiển thị các trình đơn cho lần đầu tiên.

Trong phương pháp onCreateOptionsMenu, các biểu đầu tiên nhận một đối tượng Menulnflater và sử dụng đối tượng đó để chuyển đổi, hoặc thổi phồng, XML cho các mục trình đơn vào các đối tượng Java. Cửa hàng này các đối tượng Java trong các tham số Menu. Sau đó, câu lệnh thứ hai trả về một giá trị đích thực để hiển thị menu.

Mã hiển thị menu

Mã:
@Override
Mã:
public boolean onCreateOptionsMenu(Henu menu) {
getMenuInflater().inflate(R.menu.activity_tip_calculator, menu); return true;
}


Android chỉ gọi phương thức onCreateOptionsMenu lần đầu tiên nó sẽ hiển thị menu tùy chọn. Kết quả là, bạn không thể sử dụng phương pháp này để cập nhật trình đơn mỗi khi nó được hiển thị. Đối với hầu hết các ứng dụng, bạn không cần phải làm điều đó anyway. Tuy nhiên, nếu bạn cần phải cập nhật trình đơn mỗi khi nó được hiển thị, bạn có thể ghi đè lên các phương pháp onPrepareOptionsMenu để làm điều đó. Để tìm hiểu thêm về phương pháp này, bạn có thể tìm nó trong các tài liệu API hoặc bạn có thể tìm kiếm trên Internet.

2. Xử lý các sự kiện tùy chọn trình đơn

Các mã dưới đây cũng cho thấy làm thế nào để xử lý các sự kiện xảy ra khi người dùng chọn một mục từ menu tùy chọn. Để làm điều đó, mã này sẽ ghi đè các phương pháp onOptionsItemSelected. Android gọi phương pháp này khi người sử dụng chọn một mục từ menu tùy chọn.

Trong phương pháp onOptionsItemSelected, mã này sử dụng một chuyển đổi trạng thái-ment để xác định đơn hàng đã được lựa chọn. Trong hình này, ví dụ, câu lệnh switch được các ID của các mục menu và sử dụng nó để xác định đơn hàng đã được lựa chọn.

Mã bắt sự kiện menu item events

Mã:
@Override
Mã:
public boolean onOptionsItemSelected(MenuItem item)
{ switch (item.getltemldO)
{ case R.id.menu_settings:
Toast.makeText(this, "Settings", Toast.LENGTH_SHORT).show();
return true;
case R.id.menu_about:
Toast.makeText(this, "About", Toast. LENGTH_SHORT). show ();
return true;
default:
return super.onOptionsItemSelected(item);
}
}

Nếu ID của menu item phù hợp với một trong các mục trình đơn hiển thị trước đó trong chương này, mã này sẽ hiển thị một bánh mì nướng cho biết tên của các item. Ngoài ra, nó sẽ trả về giá trị true. Điều này chỉ ra rằng phương pháp này đã được tiêu thụ các sự kiện và dừng việc xử lý tiếp theo của sự kiện này.

Nếu ID của menu item không phù hợp với một trong các mục trình đơn hiển thị trước đó trong chương này, mã này vượt qua các mục trình đơn để các phương pháp onOptionsItemSelected của lớp cha. Điều này cho phép các lớp cha để trình các mục trình đơn.

------------- || -------------
Trung tâm Đào tạo học lập trình php cơ bản nâng cao tại VietPro!

Chủ đề tương tự: