7

tôi cần có thể thay đổi menu tùy chọn (menu được hiển thị khi nhấn nút menu) trên android, để trên một trường hợp (ví dụ: nút được nhấn), nó sẽ sử dụng một tài nguyên menu cụ thể (tệp XML như trong/res/menu/...) cho trình đơn và trên một trường hợp khác, hãy sử dụng một tệp XML khác.android - tự động thay đổi menu tùy chọn, nhưng bằng cách tăng từ XML

cho đến nay tôi đã nhìn thấy chỉ là ví dụ để làm việc đó mà không xml (ví dụ herehere), và họ làm việc tốt, nhưng tôi muốn để có thể thay đổi toàn bộ menu trên một số trường hợp. Tôi đã cố gắng sửa đổi các giải pháp mà tôi đã tìm thấy, nhưng không có thử nghiệm nào của tôi hoạt động.

nếu có thể, tôi chỉ muốn tạo lại menu nếu cần được cập nhật với tài nguyên menu khác với tài nguyên hiện tại.

hãy giúp tôi.

Trả lời

16

Nếu bạn muốn thay đổi Menu tùy chọn bất kỳ lúc nào sau lần đầu tiên được tạo, bạn phải ghi đè phương thức onPrepareOptionsMenu().

public boolean onPrepareOptionsMenu (Menu menu) {  
    menu.clear();  
    if (CASE_1 == 0) { 
     CASE_1 = 1; 
     getMenuInflater().inflate(R.menu.secondmenu, menu); 
    } 
    else { 
     CASE_1 = 0; 
     getMenuInflater().inflate(R.menu.firstmenu, menu); 
    }  
    return super.onPrepareOptionsMenu(menu); 
} 

nơi CASE_1 tham chiếu đến menu bạn muốn hiển thị tùy theo yêu cầu của bạn.

+0

sẽ không có nghĩa là nó sẽ được tạo lại mỗi khi bạn hiển thị menu, trái ngược với onCreateOptionsMenu? –

+0

vâng nó sẽ được tái tạo và bạn đã nói nó (tôi muốn tạo lại menu) –

+2

Hoặc bạn có thể có xml và setVisiblity đơn của mỗi menu itenm thành true hoặc false theo yêu cầu. tham khảo http://stackoverflow.com/questions/9030268/set-visibility-in-menu-programaticallyandandroid –

Các vấn đề liên quan