我尝试从我的 fragment 启动一个 Activity ,但收到此错误:
Caused by: java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter bundle
我使用 java,不知道为什么会出现 kotlin 错误
这是我的 fragment :
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);
}
}
代码在 fragment 上出错,但在 Activity 上工作。
任何机构都可以帮忙吗?
最佳答案
您可以在 fragment 中尝试此代码而不是“getActivity”:
private AppCompatActivity activity;
@Override
public void onAttach(@NonNull Context context) {
super.onAttach(context);
if (context instanceof AppCompatActivity) {
activity = (AppCompatActivity) context;
}
}
然后在您的 clickListener 中
Intent intent = new Intent(activity, MainActivity.class);
activity.startActivity(intent);
activity.finish();
关于java - 无法从 fragment 启动 Activity ,出现 IllegalArgumentException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61476155/