我能找到的最接近的現有問題是Android Studio 3.0 lint warnings for references to activity,但它沒有幫助。DialogFragment getActivity()「可能爲空」AndroidStudio 3.0.1中的lint警告
使用AndroidStudio 3.0.1,我有一個DialogFragment
,我這樣做平常的東西:
@Override
@NonNull
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
...
我在我有一個lint警告的呻吟是Argument 'getActivity()' might be null
。
我明白爲什麼getActivity()
可能是空的,我明白了皮棉檢驗如何知道這(從@Nullable
註釋)。
我的問題是:這一切都很好,getActivity()
可能爲空,但實際上我應該如何處理這種優雅和整潔? onCreateDialog
必須返回一個Dialog
(因爲超類'@Nullable
註釋)所以我必須有活動上下文來創建它。
我可以認爲onCreateDialog
永遠不會被調用,如果DialogFragment
沒有附加到一個活動,但仍然 - 我如何解決不整潔的皮棉警告?
「我該如何解決不整潔的皮棉警告?」 - 壓制它並繼續前進。 – CommonsWare
爲什麼你不使用getContext() –
也許你可以依靠onActivityCreated或onAttach(depracated)這將給你有效的參考。然後用它代替getActivity()? – marcinj