2013-02-16 3 views
1

탐색 유형 "tabs + swipe"로 새 활동을 만들었습니다. 측면 탐색을 구현하는 동안 앱이 다운 됨

@Override 
    public Fragment getItem(int i) { 
     Fragment fragment ; 

     switch(i){ 
     case 0: 
      fragment = new Fragment1(); 

      break; 
     case 1: 
      fragment = new Fragment2(); 
      break; 
     case 3: 
      fragment = new Fragment3(); 
      break; 
      // 
     default : return null; 
     } 

     //set args if necessary 


     //return fragment 
     return fragment; 
    } 

는 각각의 탭에 대한 전 별도의 클래스를 정의했다 : 내가 준 getItem() 메소드에서 이러한 변경을했다. 클래스 중 하나는 이것이다 :

public static class Fragment1 extends Fragment { 
    /** 
    * The fragment argument representing the section number for this 
    * fragment. 
    */ 

    public Fragment1() { 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     // Create a new TextView and set its text to the fragment's section 
     // number argument value. 
     View v = inflater.inflate(R.layout.center, null); 
     return v; 
    } 
} 

I 앱 새로운 활동이 성공적으로 시작하지만 두 번째 탭으로 화면을 슬쩍 할 때 다음 ... 이것은 로그 캣 응용 프로그램의 충돌입니다 실행하면

02-16 08:48:43.328: E/AndroidRuntime(21541): FATAL EXCEPTION: main 
02-16 08:48:43.328: E/AndroidRuntime(21541): java.lang.NullPointerException 
02-16 08:48:43.328: E/AndroidRuntime(21541): at android.support.v4.app.BackStackRecord.doAddOp(BackStackRecord.java:394) 
02-16 08:48:43.328: E/AndroidRuntime(21541): at android.support.v4.app.BackStackRecord.add(BackStackRecord.java:389) 
02-16 08:48:43.328: E/AndroidRuntime(21541): at android.support.v4.app.FragmentPagerAdapter.instantiateItem(FragmentPagerAdapter.java:99) 
02-16 08:48:43.328: E/AndroidRuntime(21541): at android.support.v4.view.ViewPager.addNewItem(ViewPager.java:801) 
02-16 08:48:43.328: E/AndroidRuntime(21541): at android.support.v4.view.ViewPager.populate(ViewPager.java:992) 
02-16 08:48:43.328: E/AndroidRuntime(21541): at android.support.v4.view.ViewPager.populate(ViewPager.java:881) 
02-16 08:48:43.328: E/AndroidRuntime(21541): at android.support.v4.view.ViewPager$3.run(ViewPager.java:237) 
02-16 08:48:43.328: E/AndroidRuntime(21541): at android.os.Handler.handleCallback(Handler.java:605) 
02-16 08:48:43.328: E/AndroidRuntime(21541): at android.os.Handler.dispatchMessage(Handler.java:92) 
02-16 08:48:43.328: E/AndroidRuntime(21541): at android.os.Looper.loop(Looper.java:137) 
02-16 08:48:43.328: E/AndroidRuntime(21541): at android.app.ActivityThread.main(ActivityThread.java:4575) 
02-16 08:48:43.328: E/AndroidRuntime(21541): at java.lang.reflect.Method.invokeNative(Native Method) 
02-16 08:48:43.328: E/AndroidRuntime(21541): at java.lang.reflect.Method.invoke(Method.java:511) 
02-16 08:48:43.328: E/AndroidRuntime(21541): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789) 
02-16 08:48:43.328: E/AndroidRuntime(21541): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556) 
02-16 08:48:43.328: E/AndroidRuntime(21541): at dalvik.system.NativeStart.main(Native Method) 

제 문제를 해결하십시오.

+1

이 logcat이있는 항목을 찾을 수 없습니다. '사례 2'를 잊었습니까? –

+0

더 많은 코드를 제공해야합니다. 여러 곳에서 NullPointerException이 발생할 수 있지만 코드가이를 식별하기에 충분하지 않습니다. – StarPinkER

+0

오! 죄송합니다 .. 실제로 사례 2를 잊어 버렸습니다 ...이 질문에 대해 정말 유감입니다. – omerjerk

답변

6

대부분의 경우 기본 문은 null을 반환하며 null 조각을 추가하려고 시도하고 실패합니다 ... switch 문에 대문자 2가 누락되었음을 알고 있습니까? 의도적입니까? 내가 당신이라면
, 나는 휴식

switch(i){ 

을 넣고 난의 가치를 ... 확인하고는하고 becuz 그 중 하나, 0, 1, 3 ... 그렇지 않으면 앱이 충돌 할 경우 볼 것이다 null을 리턴합니다.

+0

사례 3이 누락되었습니다 : P –

+0

OP는이 대답을 받아 들여야합니다. –