2012-04-24 31 views
34

Tôi đang tạo ứng dụng với Tùy chọnMenu. Tôi tìm thấy vài ví dụ với nó, nhưng tất cả mọi người đang sử dụng nơi khác nhau nơi để gọi super.onCreateOptionMenu() trong phương pháp onCreateOptionsMenu().onCreateOptionsMenu() gọi số

Danh sách cách khác nhau:

@Override // without super 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.mymenu, menu); 
    return true; 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    super.onCreateOptionsMenu(menu); 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.mymenu, menu); 
    return true; 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.mymenu, menu); 
    return super.onCreateOptionsMenu(menu); 
} 

tôi nên sử dụng gì?

Trả lời

29

Tùy thuộc vào những gì bạn muốn làm. Ví dụ đầu tiên sẽ đặt menu của bạn và chỉ trình đơn của bạn. Thứ hai, sẽ thêm menu siêu hạng nhất. Người cuối cùng sẽ thêm thực đơn của bạn trước. Tuy nhiên, hãy nhớ rằng các menu cũng có trường đơn đặt hàng, trường này sẽ được tính đến tại thời điểm hiển thị.

Giả sử bạn đang mở rộng hoạt động đã có menu, nhưng bạn không muốn trình đơn đó xuất hiện nhưng một trình đơn khác. Trong trường hợp đó, bạn sẽ sử dụng cách tiếp cận đầu tiên.

Ví dụ khác: bạn đang mở rộng hoạt động có menu và bạn muốn thêm một menu khác. Trong trường hợp đó, bạn có thể sử dụng cách tiếp cận thứ hai hoặc cuối cùng.

3

Nguồn cho onCreateOptionsMenu() là như sau:

public boolean onCreateOptionsMenu(Menu menu) { 
    if (mParent != null) { 
     return mParent.onCreateOptionsMenu(menu); 
    } 
    return true; 
} 

đâu mParent là Hoạt động mẹ của Hoạt động hiện hành. Nếu Hoạt động của bạn mở rộng android.app.Activity thì chỉ có thể trả về true ở cuối và không phải lo lắng về việc gọi số super, vì triển khai mặc định sẽ cố gắng hiển thị menu dựa trên Hoạt động gốc mà bạn có thể không muốn.

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