используя кнопку во фрагменте, чтобы перейти к другому виду деятельности - PullRequest
0 голосов
/ 06 декабря 2018
Intent intent =new Intent(getActivity(),LoginActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK );
startActivity(intent);

// Это ошибка, которую я получаю //

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.salart.applogin, PID: 11946
    java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Context.getPackageName()' on a null object reference
        at android.content.ComponentName.<init>(ComponentName.java:130)
        at android.content.Intent.<init>(Intent.java:6347)
        at com.example.salart.applogin.OneFragment$2.onAuthStateChanged(OneFragment.java:78)
        at com.google.firebase.auth.zzl.run(Unknown Source:3)
        at android.os.Handler.handleCallback(Handler.java:789)
        at android.os.Handler.dispatchMessage(Handler.java:98)
        at com.google.android.gms.internal.firebase_auth.zzf.dispatchMessage(Unknown Source:6)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6944)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)

Ответы [ 2 ]

0 голосов
/ 06 декабря 2018

попробуйте заменить

startActivity(intent);

на

getActivity().startActivity(intent);
0 голосов
/ 06 декабря 2018

ВЫЗОВ С Адаптера, КОТОРЫЙ ПРИНАДЛЕЖИТ ФРАГМЕНТУ

holder.demoView.setOnClickListener(v -> { Intent intent = new Intent();
                    /*Gson gson = new Gson();
                    Type type = new TypeToken<List<SampleModel>>(){}.getType();
                    String data = gson.toJson(parsable, type);
                    intent.putExtra("chat_data", data);*/ 
//ignore the commented above code, else if only you want something like this to parse data to the called activity.

      intent.setClass(v.getContext(), CallingActivity.class);
                        v.getContext().startActivity(intent);
 });

ВЫЗОВ ИЗ OnCreateView ВНУТРИ ФРАГМЕНТА

    Intent intent =new Intent(getActivity(), CallingActivity.class);
                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK );
                getActivity().startActivity(intent);

Взятьзаписка v.getContext().startActivity(intent); эта никогда меня не подводила !!!так что если вы вызываете активность одним кликом, просто используйте view.getContext.startActivity(intent);

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