Search code examples
javaandroidandroid-activityfragment

Can't start activity from fragment, getting IllegalArgumentException


I try to start an activity from my fragment but get this error:

Caused by: java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter bundle

I use java and don't know why I get kotlin error

this is my 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);
   }

}

code get error on fragment but work on activity.

any body can help??


Solution

  • Finally I found my god dammit solution. the problem is I use KeyboardVisibilityEvent library to control hide and visibility keyboard.

    I use this code to control:

    KeyboardVisibilityEvent.setEventListener(getActivity(), this::updateKeyboardStatusText); 
    

    but I must pass the activity in method to handle life cycle

    KeyboardVisibilityEvent.setEventListener(getActivity(), getActivity(), this::updateKeyboardStatusText);
    

    hope help someone. thanks everyone