2011-06-30 22 views
7

Đây là vấn đề của tôi.Sự kiện khóa xử lý Android trong khi menu hiển thị

Tôi ghi đè khóa giảm âm lượng cho ứng dụng của mình để thực hiện một số tác vụ cụ thể trong khi nó được nhấn trong một thời gian dài, nó hoạt động bình thường. Tôi có thể đánh chặn các sự kiện quan trọng và khóa lại.

Các sự kiện nghe chính được viết trong thành phần tùy chỉnh cụ thể và không có trong hoạt động mà thành phần này được sử dụng.

Sự cố phát sinh khi tôi nhấn nút menu trong khi tôi đã nhấn phím giảm âm lượng và khi tôi phát hành trong khi menu được hiển thị, tôi không thể chặn sự kiện khóa của nó.

Bạn có thể giải thích lý do đằng sau nó là gì? Và nếu vấn đề này có thể được giải quyết hay không?

Cảm ơn.

Trả lời

5

Khi Menu được nhấp vào thay đổi tiêu điểm cửa sổ của bạn. Tập trung vào chế độ xem Menu. Bởi vì onKeyDown() này không hoạt động vì onKeyDown wil hoạt động nếu trọng tâm của màn hình sẽ ở chế độ xem hoặc hoạt động ở trên đầu.

Sử dụng đoạn mã sau để biết điểm của màn hình

@Override 
    public void onWindowFocusChanged(boolean hasFocus) { 
     // TODO Auto-generated method stub 
     System.out.println("....window focus changed.."); 
     super.onWindowFocusChanged(hasFocus); 
    } 
+0

tôi có thể xác mà màn hình có tập trung ... thậm chí tôi đã thay đổi tập trung với 'this.requestFocus()', nhưng đề nghị này không công việc ... phím giảm âm lượng giảm âm lượng [hành vi mặc định của hệ thống] thay vì hành vi ứng dụng cụ thể. – Prasham

+0

Tôi nghĩ rằng anh ấy đã trả lời câu hỏi một cách chính xác, đó là lý do tại sao nó xảy ra, không phải cách giải quyết nó. Nếu hệ thống menu có kiểm soát và tập trung thì hoạt động của bạn sẽ không nhận được các đầu vào quan trọng. – Idistic

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