2014-05-09 11 views
8

Khi lạm phát một phần tử với findViewById, Android Studio luôn cảnh báo tôi rằng quan điểm lạm phát của tôi có thể trở về nullBạn có nên kiểm tra chế độ xem cho null với mọi cuộc gọi findViewById không?

View v = inflater.inflate(R.layout.fragment_photo_gallery, container, false); 

và đề nghị tôi làm một cái gì đó giống như vòm với tuyên bố của tôi với một kiểm tra null:

if (v != null) { 
    mGridView = (GridView)v.findViewById(R.id.gridView); 
} 

Có nên luôn luôn thực hiện kiểm tra null đã đề cập trước khi thổi phồng một phần tử không?

EDIT: Thêm hình ảnh lint

enter image description here enter image description here

Trả lời

0

Bạn có thể bỏ qua cảnh báo này và tiếp tục với mã của mình nếu bạn chắc chắn rằng id bạn đang chuyển không tồn tại trong ngữ cảnh ứng dụng của bạn, nếu bạn không chắc chắn thì tốt hơn là thực hiện kiểm tra null trước khi truy cập các phần tử trong chế độ xem này vì

 View v = inflater.inflate(R.layout.fragment_photo_gallery, container, false); 

sẽ trả về giá trị rỗng trong trường hợp "R.layout.fragment_photo_gallery" không đúng hoặc không hợp lệ hiển thị v là rỗng.

Như vậy một nỗ lực như thế này

 mGridView = (GridView)v.findViewById(R.id.gridView); 

có thể dẫn đến một con trỏ ngoại lệ vô

3

Tôi nghĩ rằng bạn không bao giờ nên làm điều đó.

Nếu bạn làm điều đó, bạn đang che giấu lỗi logic trong chương trình của mình, trong trường hợp bạn chuyển id sai đến findView của mình.

Nếu bạn đang chuyển id chính xác nhưng vì lý do nào đó, hàm lượng trả về không phải là vấn đề Android (điều đó sẽ không bao giờ xảy ra) và bạn cũng không nên làm gì cả.

Tôi nghĩ cảnh báo này không đến từ Android Lint.

+0

hình ảnh gia tăng cho thấy những lời cảnh báo lint Tôi nhận được bên trong Android Studio. –

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