2014-05-09 7 views
8

Wenn ein Element mit findViewById aufbläst, Android Studio warnt mich immer, dass meine aufgeblasene AnsichtWird empfohlen, die Ansicht bei jedem findViewById-Aufruf auf Null zu prüfen?

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

null zurück kann und schlägt vor, mich mit einem Null-Check so etwas wie Surround mit meiner Aussage zu tun:

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

Ist es empfehlenswert, den genannten Null-Check vor dem Aufblasen eines Elements immer durchzuführen?

EDIT: Hinzufügen von Flusen Bilder

enter image description here enter image description here

Antwort

0

Sie können diese Warnung ignorieren und mit Ihrem Code fortfahren, wenn Sie sicher sind, dass die übergebene ID in Ihrem Anwendungskontext existiert diese Ansicht, da

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

wird im Fall "R.layout.fragment_photo_gallery" null zurück, ist falsch oder ungültig renderring v als null.

So ein Versuch, wie dies

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

kann in einer Null-Zeiger Ausnahme

3

Ich denke, Sie sollten nie tun.

Wenn Sie dies tun, maskieren Sie einen logischen Fehler in Ihrem Programm, falls Sie eine falsche ID an Ihre findView übergeben.

Wenn Sie eine korrekte ID übergeben, aber aus irgendeinem Grund gibt inflater Null zurück, das ist Android-Problem (das wird nie tatsächlich passieren) und Sie sollten auch nichts tun.

Ich denke, diese Warnung kommt nicht von Android Lint.

+0

hinzugefügt Bilder zeigen die Flusen Warnungen führt ich in Android Studio bin immer. –