Trong một số phương thức hoạt động của tôi, tôi muốn kiểm tra tiêu đề của menu hoặc biết nó có được kiểm tra hay không. Làm thế nào tôi có thể nhận được menu của Activity. Tôi cần một cái gì đó như this.getMenu()
Làm cách nào để có được menu tùy chọn của Hoạt động của tôi?
Trả lời
Hãy cảnh giác với invalidateOptionsMenu()
. Nó tạo lại toàn bộ menu. Điều này có rất nhiều chi phí và sẽ thiết lập lại các thành phần nhúng như SearchView
. Tôi mất khá nhiều thời gian để theo dõi lý do tại sao SearchView
của tôi sẽ "đóng" ngẫu nhiên.
Tôi đã kết thúc việc chụp menu như được đăng bởi Dark và sau đó gọi onPrepareOptionsMenu(Menu)
nếu cần. Điều này đáp ứng yêu cầu của tôi mà không có một tác dụng phụ khó chịu. Gotcha: Hãy chắc chắn để làm một kiểm tra null trong trường hợp bạn gọi onPrepareOptionsMenu()
trước khi trình đơn được tạo ra. Tôi đã làm như sau:
private Menu mOptionsMenu;
@Override
public boolean onCreateOptionsMenu(final Menu menu) {
mOptionsMenu = menu
...
}
private void updateOptionsMenu() {
if (mOptionsMenu != null) {
onPrepareOptionsMenu(mOptionsMenu);
}
}
Đây là câu trả lời hay và tôi muốn giúp bạn nhận được 50.--) –
Câu trả lời thú vị, Vì một lý do nào đó tôi không thể tìm ra menu nào để chuyển tới onPrepareOptionsMenu () vì tôi muốn thay đổi tùy thuộc vào các điều kiện chỉ xảy ra khi dịch vụ của tôi bắt đầu, v.v.Dù sao –
Tôi sẽ đồng ý rằng chi phí là một chút quá nhiều và rất đáng chú ý nếu sử dụng 'invalidateOptionsMenu()'. Tôi thích giải pháp này để sử dụng ít khối lượng công việc hơn. –
Có một số phương thức gọi lại cung cấp menu làm thông số.
Bạn có thể muốn thao tác ở đó.
Ví dụ:
onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo)
onCreateOptionsMenu(Menu menu)
onCreatePanelMenu(int featureId, Menu menu)
Có nhiều hơn, tốt nhất bạn hãy xem trong tài liệu hướng dẫn hoạt động và tìm kiếm phương pháp mong muốn của bạn: http://developer.android.com/reference/android/app/Activity.html
trong giá trị giải pháp của bạn không được cập nhật – breceivemail
không biết chính xác behaivior nhưng bạn có nghĩ rằng tiết kiệm tham chiếu trong một biến trường sẽ làm điều đó? Giống như: onCreateOptionsMenu (Menu menu) {this.menu = menu. . . . và truy cập nó yêu cầu tiêu đề sau? – Ostkontentitan
Theo như tôi có thể hiểu được những gì bạn muốn ở đây là có thể giúp bạn:
1. Tham khảo hướng dẫn này qua option menu.
2. Mỗi lần người dùng nhấn nút menu, bạn có thể kiểm tra tiêu đề của nó thông qua getTitle()
.
3. Hoặc nếu bạn muốn biết mục menu cuối cùng được chọn hoặc được chọn khi người dùng chưa nhấn nút menu thì bạn cần lưu trữ tùy chọn khi người dùng nhấn.
bạn có thể làm điều đó bằng cách thông qua các đối tượng Menu để lớp hoạt động của bạn
public class MainActivity extends Activity
{
...
...
private Menu _menu = null;
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
_menu = menu;
return true;
}
private Menu getMenu()
{
//use it like this
return _menu;
}
}
Gọi invalidateOptionsMenu() là tốt hơn! và bạn chỉ cần cung cấp bản cập nhật của mình trong phương thức onPrepareOptionsMenu (trình đơn Menu). – AntoineP
Gọi invalidateOptionsMenu() thay vì đi qua đối tượng đơn xung quanh.
Thật không may, được thêm vào ở cấp API 11: ( – greg7gkb
- 1. Cách tạo menu tùy chọn động?
- 2. Làm cách nào để biết liệu menu thả xuống có các tùy chọn để chọn không?
- 3. Làm thế nào để có được nhãn của tùy chọn chọn với jQuery?
- 4. Làm cách nào để nhận được tùy chọn hoạt động trong Android?
- 5. Làm cách nào để loại trừ Hoạt động của riêng tôi khỏi Trình chọn Hoạt động (intent)?
- 6. Android, Làm thế nào để tạo ra tùy chọn menu
- 7. Tôi làm cách nào để có được OptionParser của optparse để bỏ qua các tùy chọn không hợp lệ?
- 8. Làm cách nào để tạo menu trong menu bắt đầu cho chương trình của tôi?
- 9. Chiều rộng và chiều cao của Menu Tùy chọn?
- 10. menu tùy chọn Android có biểu tượng
- 11. Làm cách nào để tôi thực hiện một phần của kết hợp regex tùy chọn?
- 12. Chọn menu "giả" tùy chọn
- 13. Tôi làm cách nào để tạo tùy chọn Android một cách linh hoạt?
- 14. Làm cách nào để thay đổi màu của văn bản tùy chọn của hộp chọn?
- 15. Android - Tùy chọn menu có lập trình chọn
- 16. Làm thế nào để có được lớp Hoạt động chính hoặc tên lớp của đơn đăng ký của tôi?
- 17. Tôi làm cách nào để có được các AVI chung của TAnimate để hoạt động trên Vista và Win7?
- 18. Làm thế nào để có được văn bản của các tùy chọn được lựa chọn của một lựa chọn bằng cách sử dụng jquery?
- 19. Mã menu tùy chọn sử dụng lại
- 20. Làm cách nào để lưu tùy chọn người dùng cho ứng dụng iPhone của tôi?
- 21. Tạo menu tùy chọn khả dụng cho tất cả Hoạt động trong một ứng dụng
- 22. Thực hiện menu tùy chọn một lần cho một số hoạt động
- 23. Cách tôi ẩn nút menu cho một hoạt động
- 24. Tôi làm cách nào để có được Python hoạt động trong một NetBeans hiện có?
- 25. Menu tùy chọn tương tự trong tất cả Hoạt động trong Android
- 26. Làm cách nào để đặt trạng thái được nhấp cho nút tùy chỉnh của tôi?
- 27. Tùy chọn menu trong android
- 28. Làm cách nào để có được trình tải xuống WPF của tôi hoạt động với tính năng thu phóng?
- 29. Làm cách nào để có tùy chọn được chọn cuối cùng từ nhiều lựa chọn?
- 30. Làm cách nào để lặp qua tất cả các khóa của tùy chọn được chia sẻ?
"Tên" và "Đã kiểm tra"? Tôi không hiểu. Id và sở thích? – keyser
bạn đang nói về menu tùy chọn? Giống như cái được tạo trong "boolean onCreateOptionsMenu công khai (Menu trình đơn)"? – MikeIsrael
trình đơn tùy chọn có – breceivemail