findViewById không nhất thiết phải được chạy trên onOptionsItemSelected để có được quan điểm của các mục hành động. Tuy nhiên, hãy lưu ý rằng đôi khi các mục tác vụ nằm trong trình đơn mục bổ sung để bạn có thể nhận được một giá trị thay thế.
vậy, bạn có thể làm như thế nào?
đây là một số mẫu mã:
public boolean onCreateOptionsMenu(final Menu menu) {
getSupportMenuInflater().inflate(R.menu.main, menu);
new Handler().post(new Runnable() {
@Override
public void run() {
final View menuItemView = findViewById(R.id.menu_action_item);
...
này đã được thử nghiệm khi sử dụng thư viện ActionBarSherlock, trên android 4.1.2 và android 2.3.5.
một giải pháp thay thế khác là sử dụng cách mở rộng hơn, được sử dụng trên showcaseView library, here.
Nguồn
2013-08-25 09:24:37
Không có điều này không làm việc Tôi đã thử rằng trước hết và nó chỉ trả về một con trỏ null. Nhưng sau đó tôi sẽ không mong đợi nó anyway như là mục trên thanh hành động là một MenuItem mà không có vẻ là một Xem. Vì vậy, tôi đang cố gắng để có được tại Xem bên trong đó MenuItem – Kyros
phụ thuộc vào nơi bạn đang gọi nó, bạn nên gọi nó bên trong hoạt động để có được xem sau đó vượt qua nó để cửa sổ popup của bạn .. nó làm việc cho tôi – Nermeen
Tôi đã cố gắng để tìm xem trong OnCreate, bạn đang gọi nó ở đâu? – Kyros