Как передать контекст из фрагмента во вспомогательный класс - PullRequest
0 голосов
/ 16 января 2019

В моей Деятельности есть 3 фрагмента, и я реализую их интерфейсы следующим образом:

public class MainActivity extends AppCompatActivity implements FirstFragment.OnFragmentInteractionListener,
    RegisterPageFragment.OnFragmentInteractionListener,
    LoginPageFragment.OnFragmentInteractionListener {

когда я пытаюсь создать пользователя из фрагмента RegisterPageFragment, используя этот код:

firebaseHelper.createNewUser(getActivity(), email, password, new Callback() {
            @Override
            public void callback() {
                accountCreated();
            }
        });
  //This code is running in a fragment
  //      (RegisterPageFragment)

Я получаю исключение java.lang.NullPointerException. Потому что getActivity() возвращает null. Но дело в том, что у меня есть ToastMessage перед этим блоком кода:

ShortCut.displayMessageToast(getActivity(), "You should fill empty fields!");

Почему я не получаю ошибки от ToastMessage и firebaseHelper? Потому что они имеют одинаковый контекст ..

Эта ситуация заставляет меня думать, что проблема в mAuth.createUserWithEmailAndPassword (). Вот мой метод firebaseHelper.createNewUser ():

     public void createNewUser(final Context context, String email, String password , final Callback callback){
    firebaseAuth = this.getFirebaseAuth();
    firebaseAuth.createUserWithEmailAndPassword(email, password)
            .addOnCompleteListener((Activity) context, new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    if (!task.isSuccessful()) {
                        ShortCut.displayMessageToast(context,  "invalid info");
                    }else {
                        ShortCut.displayMessageToast(context, "Account created");
                        callback.callback();
                    }
                }
            });
}

Вы знаете, где моя вина? Или как я могу запустить этот код без ошибок?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...