gpt4 book ai didi

android 如何修复 : method invocation 'getSystemService'

转载 作者:搜寻专家 更新时间:2023-11-01 08:19:44 25 4
gpt4 key购买 nike

我有启动日期选择器的 Fragment。 Android Studio 新抛出一条错误消息:“方法调用‘getSystemService’可能会在以下代码中产生‘NullPointerException’:

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
super.onCreateDialog(savedInstanceState);
// Hide the soft keyboard when the fragment is created.
InputMethodManager inputManager = (InputMethodManager)getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
...
}

Android Studio 建议的“修复”是“替换为‘Objects.requireNonNull(getActivity())’”

这样做会在“.requireNonNull(getActivity())...”上引发另一个 Android Studio 错误

清除最后一条错误消息的建议修复之一对代码执行此操作:

if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) {
inputManager = (InputMethodManager) Objects.requireNonNull(getActivity()).getSystemService(Context.INPUT_METHOD_SERVICE);
}

但是以上是否意味着键盘不会为 OS < KITKAT 隐藏?我正在寻找 API >=14 的修复程序,而不是 API 19 (KITKAT)。我在这里缺少什么?

最佳答案

尝试

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
super.onCreateDialog(savedInstanceState);
// Hide the soft keyboard when the fragment is created.
if (getActivity() != null) {
InputMethodManager inputManager = (InputMethodManager)getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
...
}
}

关于android 如何修复 : method invocation 'getSystemService' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52939935/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com