我能找到的最接近的现有问题是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