2012-08-22 6 views
2

좋은 하루.Android 조각 NullPointerException on onBackPressed

3 개의 컨테이너를 보유하는 주요 활동이 하나있는 앱이 있습니다. 모든 컨테이너에는 조각이 "주입"됩니다. 이 주요 활동을 시작하면 첫 번째 컨테이너와 단편이 표시되고 나머지 두 개는 숨겨집니다. 버튼 클릭시 앱은 다른 조각을 담는 두 번째 컨테이너로 이동합니다.

그리고이 방법은 마지막 컨테이너로 이동하고 안드로이드 뒤로 버튼으로 첫 번째 컨테이너로 이동합니다. 내가 두 번째 조각에서 중지하면

문제가있다, 나는 세 번째, 다음과 같은 오류와 응용 프로그램의 충돌을 활성화하지 않고, 다시 처음으로 돌아가보십시오 :

java.lang.NullPointerException at 
pl.oke.arshop.activities.ARShopActivity.onBackPressed(ARShopActivity.java:155) 
at android.app.Activity.onKeyUp(Activity.java:1895) at 
android.view.KeyEvent.dispatch(KeyEvent.java:1281) at 
android.app.Activity.dispatchKeyEvent(Activity.java:2075) at 
android.view.ViewRoot.handleFinishedEvent(ViewRoot.java:2463) at 
android.view.ViewRoot.handleMessage(ViewRoot.java:1752) ... etc 

곳 ARShopActivity.java : 155는 다음과 같습니다.

@Override 
    public void onBackPressed() { 

     if (isVirtualRoomOpened) { 
      isVirtualRoomOpened = false; 
      showFurnitureFragments(); 
     } else if (isFurnitureFragmentOpened) { 
      isFurnitureFragmentOpened = false; 
      showMainFragment(); 
     } 

     super.onBackPressed(); 
     Log.d("Dab", " " + isVirtualRoomOpened + " " 
       + isFurnitureFragmentOpened + " " + isMainFragmentOpened); 

    } 
} 

의견이 있으십니까? 고맙습니다.

답변

0

아, 오류가있는 사람, isVirtualRoomOpened 변수가 마지막 조각을 만들 때 초기화되므로 두 번째 조각에서 첫 번째 조각으로 되돌아 가려고 할 때 첫 번째 조건의 인수가 null입니다.

조각에 관한 모든 부울 변수를 "거짓"으로 설정하면 문제가 해결됩니다.

관련 문제