2014-12-13 16 views
18

Tôi nhận được cảnh báo này (từ tiêu đề câu hỏi) trong chế độ xem Android tùy chỉnh mà tôi đang phát triển.Chế độ xem tùy chỉnh ... ghi đè trênTouchEvent nhưng không thực hiệnNhấp vào

Tại sao tôi bị cảnh báo? Logic đằng sau nó có nghĩa là tại sao nó là một thực tiễn tốt
cũng ghi đè lên performClick khi bạn ghi đè onTouchEvent?

+0

http://stackoverflow.com/questions/24952312/ontouchlistener-warning- ontouch-should-call-viewperformclick-khi-a-click-is-d, http://android-er.blogspot.fr/2014/09/warning-custom-view-overrides.html –

+0

@shayanpourvatan Tôi đã thấy các liên kết này . Nhưng chúng không giống như câu hỏi của tôi. –

+0

@ peter.petrov Chúng hoàn toàn giống nhau. Và cả hai đều có cùng một câu trả lời vô ích - không có gì để xử lý và performClick() dường như không làm gì hữu ích. Tôi quyết định ngay bây giờ chỉ cần ngăn chặn cảnh báo Lint cho việc này. –

Trả lời

12

Cảnh báo này cho bạn biết để ghi đè performClick

@Override 
public boolean performClick() { 
    // Calls the super implementation, which generates an AccessibilityEvent 
     // and calls the onClick() listener on the view, if any 
     super.performClick(); 

     // Handle the action for the custom click here 

     return true; 
} 

Nhưng nó không phải là bắt buộc. Như tôi đã tạo ra một knobView tùy chỉnh và nó đang làm việc khá tốt, nơi tôi cũng phải đối mặt với cảnh báo này.

+0

Điểm mấu chốt là phần mà bạn chỉ có nhận xét "Xử lý tác vụ cho nhấp chuột tùy chỉnh tại đây". Tôi nên xử lý gì ở đó? Không có gì hữu ích để tôi nghĩ. Tôi không muốn viết mã vô dụng chỉ cần toshut lên Lint. –

5

Mặc dù đây chỉ là cảnh báo và có thể bị bỏ qua, có vẻ như nó là bắt buộc đối với trợ năng.

chi tiết được mô tả here

Sau đó, khi bạn quản lý một hành động, bạn nên thêm performClick, ví dụ:

if (action == MotionEvent.ACTION_DOWN) { 
     performClick(); // Call this method to handle the response, and 
     // thereby enable accessibility services to 
     // perform this action for a user who cannot 
     // click the touchscreen. 
+0

Thật không may blog không thực sự giải thích bất cứ điều gì. Tôi có một mảnh mà bạn có thể "vẽ" chữ ký của bạn. Tôi không hiểu tại sao mọi người nên được hưởng lợi từ trình xử lý nhấp chuột mà không làm gì cả. :(Tôi không muốn viết mã ngu ngốc chỉ để câm miệng Lint. –

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