Tôi biết rằng Android cung cấp một số phương pháp hữu ích để được ghi đè để xác định một thực đơn:Android: Cách có một menu được chia sẻ trong mỗi (Danh sách) Hoạt động mà không cần viết lại các phương pháp ghi đè?
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0, AIS, 0, "Activity Inventory Sheet").setIcon(android.R.drawable.ic_menu_upload);
// ...
return true;
}
public boolean onOptionsItemSelected(MenuItem item) {
Intent i;
switch (item.getItemId()) {
case AIS: i = new Intent(this, ActivityInventorySheet.class);
startActivity(i);
return true;
// ...
}
return false;
}
Tôi muốn có menu này được chia sẻ bởi mỗi hoạt động và ListActivity của ứng dụng Android của tôi. Điều này là để có một menu chuẩn trong mỗi (List) Activity cho phép người dùng chuyển đến mọi phần của ứng dụng trong một lần nhấp.
Ngay bây giờ, cách dễ nhất để đạt được điều này là sao chép và dán cả hai phương pháp trong mọi (Danh sách) Hoạt động của ứng dụng. Tôi không thích sự thừa mã này được viết :)
Phân lớp phụ có phải là sự lựa chọn hợp lý không? Tôi đã thấy rằng sub-classing một ListActivity của tôi không hoạt động rất tốt (các luồng truy xuất các đối tượng từ một cơ sở dữ liệu đang đưa ra các vấn đề). Có cách nào khác để chia sẻ menu dù là Hoạt động không?
Cảm ơn
Điều này hoạt động rất tốt. Tôi phải tạo hai lớp trừu tượng, một cho Hoạt động và lớp kia cho ListActivities (nếu không ví dụ bạn đã cung cấp sẽ không hoạt động đối với Hoạt động đơn giản). Dù sao, đây là mã ít hơn nhiều để viết và căn hộ theo nhu cầu của tôi. Cảm ơn bạn! – dgraziotin
Nếu bạn có một Hoạt động mở rộng một ListActivity, bạn cần một ListView trong bố trí của bạn, nếu không nó bị treo ... – jul