【发布时间】:2020-08-12 00:39:58
【问题描述】:
我尝试从我的片段开始一个活动,但收到此错误:
引起:java.lang.IllegalArgumentException:参数指定为 非空为空:方法 kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull,参数 捆绑
我使用 java 不知道为什么会出现 kotlin 错误
这是我的片段:
public class LoginFragment extends Fragment {
private FragmentLoginBinding binding;
private AuthSharedViewModel sharedViewModel;
@Override
public View onCreateView(@NotNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
binding = DataBindingUtil.inflate(inflater, R.layout.fragment_login, container, false);
sharedViewModel = ((LoginActivity) getActivity()).viewModel;
binding.setViewmodel(sharedViewModel);
binding.setLifecycleOwner(this);
onClickListener();
return binding.getRoot();
}
private void onClickListener() {
binding.loginBtn.setOnClickListener(v -> {
Intent intent = new Intent(getActivity(), MainActivity.class);
startActivity(intent);
});
}
@Override
public void onDestroyView() {
super.onDestroyView();
sharedViewModel.getIsFetchSmsSuccessful().removeObservers(this);
}
}
代码在片段上出错,但在活动上工作。
任何机构都可以提供帮助??
【问题讨论】:
-
您在什么时候收到错误消息?当您单击片段中的按钮时?或者当你打开这个片段时?
-
@droidbaza 两人
-
您的日志错误显示捆绑参数为空。这意味着您可能错误地请求/使用捆绑。例如你不包括检查(如果捆绑!=空)。很难说没有看到你的代码
-
第一。在你的 destroyView (if (sharedViewModel!=null) {sharedViewModel.getIsFetchSmsSuccessful().removeObservers(this)};2d 替换此行 "sharedViewModel = ((LoginActivity) getActivity()).viewModel;" - (而不是getActivity - 活动)
标签: java android android-activity fragment