Tôi đã tạo một trò chơi android đơn giản, dựa trên mẫu Lunar Lander và tôi đang gặp sự cố khi xử lý các sự kiện chính. Khi hoạt động bắt đầu, các phím duy nhất mà onKeyDown hoặc onKeyUp được gọi là các phím lên/xuống/trái/phải dpad. Các phím menu, back hoặc dpad_center đều kích hoạt các phương thứcKey. Tuy nhiên, một khi tôi đã đẩy một trong các nút lên/xuống/trái/phải của dpad, nhấn phím menu, back hoặc dpad_center để kích hoạt các phương thức này. Tôi không nhận được bất kỳ lỗi nào, hoặc bất kỳ dấu hiệu của những gì đang xảy ra.onKeyDown không phải lúc nào cũng được gọi trong ứng dụng Android
Có thể tập trung được đặt sai - hoạt động được bắt đầu từ một nút trên màn hình, vì vậy nó có thể ở chế độ màn hình cảm ứng. Nếu đúng như vậy, không nên chạm vào nút quay lại để tôi vào chế độ lấy nét phù hợp để tôi có thể bắt sự kiện này?
Tôi đang sử dụng trình giả lập từ SDK-1.5r3. Tôi chưa thể thử điều này trên điện thoại thực. Đây là onKeyDown của tôi.
public boolean onKeyDown(int keyCode, KeyEvent msg)
{
Log.d(TAG, "onKeyDown: " + keyCode);
return super.onKeyDown(keyCode, msg);
}
Cảm ơn
Matt
Trong chế độ xem - nhưng trong khi kiểm tra điều này, tôi nhận ra rằng tôi không bật tính năng setFocusableInTouchMode - thêm điều đó vào sự cố đã khắc phục. –
Ah, tuyệt. Tôi xin lỗi tôi đã bỏ lỡ vấn đề thực sự nhưng tôi rất vui vì tôi có thể giúp đỡ. – haseman
Tôi đã thử điều này trong một đoạn nhưng onKeyDown() của chế độ xem của tôi không bao giờ được gọi ngay cả khi tôi đã đặt tiêu điểm của nó thành true: 'searchView.setFocusable (true); searchView.setFocusableInTouchMode (true); '. Các onKeyDown() của hoạt động không nhận được gọi là mặc dù, nhưng không phải cho phím trở lại không may. – faizal