なぜそれが起こっているのか理解できないという問題があります。シングルトンメソッドでOnResum(Android)にエラーが発生する
私はフラグメントを持っており、フラグメントに、私は以下のようにresumeメソッドにあります。
@Override
public void onResume(){
super.onResume();
System.out.println("number 1");
int s = ((StarterApplication) this.getActivity().getApplication()).getRefreshNotificationVar();
System.out.println("number 2");
s = s + 1;
System.out.println("number 3");
((StarterApplication) this.getActivity().getApplication()).setRefreshNotificationVar(s);
System.out.println("number 4");
System.out.println(s);
}
そして、私のシングルトンは以下の通りです:
private int refreshNotificationVar;
public int getRefreshNotificationVar() {
System.out.println("check out here");
return refreshNotificationVar;
}
public void setRefreshNotificationVar(int refreshNotificationVar) {
this.refreshNotificationVar = refreshNotificationVar;
System.out.println(refreshNotificationVar+" is my number");
}
そして、私は一度でこのフラグメントを呼び出します以下のような活動を生み出します。これはうまくいきます。シングルトンの方法など。
newsFeedFragment fragment2 = new newsFeedFragment();
android.support.v4.app.FragmentTransaction fragmentTransaction2 = getSupportFragmentManager().beginTransaction();
fragmentTransaction2.add(R.id.fragment_container, fragment2, "news_feed_fragment");
fragmentTransaction2.addToBackStack(null);
fragmentTransaction2.commit();
そして、このフラグメントを次のようなボタンで再度呼び出します。しかしここでは、シングルトンメソッドが起動するときにエラーが発生します。
E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.IllegalStateException: Could not execute method for android:onClick
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:293)
at android.view.View.performClick(View.java:3511)
at android.view.View$PerformClick.run(View.java:14105)
at android.os.Handler.handleCallback(Handler.java:605)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4424)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288)
at android.view.View.performClick(View.java:3511)
at android.view.View$PerformClick.run(View.java:14105)
at android.os.Handler.handleCallback(Handler.java:605)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4424)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at com.my_last.mylast.newsFeedFragment.onResume(newsFeedFragment.java:223)
at com.my_last.mylast.MainActivity.go_to_main_view(MainActivity.java:565)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288)
at android.view.View.performClick(View.java:3511)
at android.view.View$PerformClick.run(View.java:14105)
at android.os.Handler.handleCallback(Handler.java:605)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4424)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)
ん:
newsFeedFragment fragment = new newsFeedFragment();
android.support.v4.app.FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.hide(getSupportFragmentManager().findFragmentById(R.id.fragment_container));
fragmentTransaction.hide(getSupportFragmentManager().findFragmentByTag("notifications_fragment"));
fragmentTransaction.show(getSupportFragmentManager().findFragmentByTag("news_feed_fragment"));
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
fragment.onResume();
初めてのフラグメント負荷は、それが正常に動作しますが、私はフラグメントを示し、手動onResumeメソッドを起動したとき、私は以下のようにエラーを取得するために開始
誰もがこれについて考えている?
223行目のnewsFeedFragment.javaには何がありますか?この行にはNullPointerExceptionがあります –
'this.getActivity()'が 'null'を返していますか? – tianyu
はい、この行は 'int s =((StarterApplication)this.getActivity()。getApplication())。getRefreshNotificationVar();' – saner