2013-09-03 60 views
9

cho đến bây giờ Tôi không thể tìm thấy bất kỳ câu trả lời nào phù hợp với vấn đề/câu hỏi của tôi. Trong studio android, nó thường hiển thị thông báo, ví dụ: findViewById có thể tạo ra một NPE, althogh tôi biết mục IS có trong layout tôi sử dụng. Tôi cũng không bao giờ bị NPE ném tại các vị trí này khi đang chạy, vậy tại sao lại cảnh báo/thông báo?Cảnh báo/cảnh báo null của con trỏ trên Android trong chế độ xem mã

Tôi chỉ không biết làm thế nào tôi phải phản ứng/xử lý các cảnh báo/infos như vậy trong chế độ xem mã? Có lời khuyên nào để tránh những tin nhắn đó không (bởi vì đối với tôi nó trông giống như mã hợp lệ và đang hoạt động)? Đó chỉ là cảnh báo trong chế độ xem mã, điều đó làm tôi không chắc chắn.

Đây là đoạn mã cảnh báo được hiển thị trên findViewByID.

//fetch predefined item layout 
row = inflater.inflate(R.layout.view_searchresult_item,null); 
//get table layout for inserting items 
TableLayout itemtablelayout = (TableLayout)row.findViewById(R.id.resultitem_tablelayout); 
+0

Cảnh báo không phải là Lỗi. Và cảnh báo bạn đang nói về "nó có thể tạo ra", đừng nói 'nó phải tạo ra'. Vì vậy, sự lựa chọn là của bạn. Hoặc thêm kiểm tra null hoặc không –

+1

Đó là những gì câu hỏi của tôi là nhằm. Làm thế nào mà thường được thực hiện? Nullchecks cho mọi cảnh báo? Trong trường hợp này tôi khá chắc chắn rằng không bao giờ xảy ra anthing, bởi vì id/item luôn luôn hiện diện. Tất nhiên, đối với các trường hợp biến, một nullcheck được sử dụng bởi tôi. – Skullcrasher

+0

Tôi nói "Vì vậy, sự lựa chọn là của bạn." Nếu bạn chắc chắn 'findViewById' trong mã của bạn sẽ không bao giờ là nguyên nhân của NPE, thì đừng thêm kiểm tra null. –

Trả lời

3

Cảnh báo không phải là lỗi. Và cảnh báo bạn đang nói về "nó có thể tạo ra", đừng nói 'nó phải tạo ra'. Vì vậy, sự lựa chọn là của bạn. Hoặc thêm kiểm tra null hay không


Vì vậy, Nếu bạn chắc chắn rằng findViewById trong mã của bạn sẽ không bao giờ nguyên nhân của NPE, sau đó không thêm việc kiểm tra null.

+6

làm thế nào để bạn tắt cài đặt lint này? –