2016-04-25 18 views
0

Auf der Registerkarte habe ich fünf Fragmente angehängt. Bis zur dritten Fragmentnavigation ist in Ordnung, aber wenn Sie zum 4. und 5. Fragment direkt oder durch Wischen geht, wird App abgestürzt. Dies ist meine Haupttätigkeit.Anwendung stürzt nach dem dritten Fragment ab?

 public class MainActivity extends AppCompatActivity { 


private SectionsPagerAdapter mSectionsPagerAdapter; 


private ViewPager mViewPager; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 

    TabLayout tabLayout = (TabLayout) findViewById(R.id.tab_layout); 
    tabLayout.addTab(tabLayout.newTab().setText("Videos")); 
    tabLayout.addTab(tabLayout.newTab().setText("Games")); 
    tabLayout.addTab(tabLayout.newTab().setText("Maps")); 
    tabLayout.addTab(tabLayout.newTab().setText("Quizze")); 
    tabLayout.addTab(tabLayout.newTab().setText("Discussion")); 

    mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager(), tabLayout.getTabCount()); 


    mViewPager = (ViewPager) findViewById(R.id.container); 
    mViewPager.setAdapter(mSectionsPagerAdapter); 
    mViewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout)); 
    tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { 
     @Override 
     public void onTabSelected(TabLayout.Tab tab) { 
      mViewPager.setCurrentItem(tab.getPosition()); 
     } 

     @Override 
     public void onTabUnselected(TabLayout.Tab tab) { 

     } 

     @Override 
     public void onTabReselected(TabLayout.Tab tab) { 

     } 
    }); 

} 


@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.menu_main, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 

    int id = item.getItemId(); 


    if (id == R.id.action_settings) { 
     return true; 
    } 

    return super.onOptionsItemSelected(item); 
} 


public static class PlaceholderFragment extends Fragment { 

    private static final String ARG_SECTION_NUMBER = "section_number"; 

    public PlaceholderFragment() { 
    } 


    public static PlaceholderFragment newInstance(int sectionNumber) { 
     PlaceholderFragment fragment = new PlaceholderFragment(); 
     Bundle args = new Bundle(); 
     args.putInt(ARG_SECTION_NUMBER, sectionNumber); 
     fragment.setArguments(args); 
     return fragment; 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.fragment_main, container, false); 
     TextView textView = (TextView) rootView.findViewById(R.id.section_label); 
     textView.setText(getString(R.string.section_format, getArguments().getInt(ARG_SECTION_NUMBER))); 
     return rootView; 
    } 
} 

public class SectionsPagerAdapter extends FragmentPagerAdapter { 

    public SectionsPagerAdapter(FragmentManager fm, int tabCount) { 
     super(fm); 
    } 

    @Override 
    public Fragment getItem(int position) { 

     switch (position) { 
      case 0: 
       Videos tab1 = new Videos(); 
       return tab1; 
      case 1: 
       Notes tab2 = new Notes(); 
       return tab2; 
      case 2: 
       MindMaps tab3 = new MindMaps(); 
       return tab3; 


      case 3: 
       Quizze tab4 = new Quizze(); 
       return tab4; 

      case 5: 
       Discussion tab5 = new Discussion(); 
       return tab5; 


     } 
     return null; 
    } 



    @Override 
    public int getCount() { 

     return 5; 
    } 

    @Override 
    public CharSequence getPageTitle(int position) { 
     switch (position) { 
      case 0: 
       return "SECTION 1"; 
      case 1: 
       return "SECTION 2"; 
      case 2: 
       return "SECTION 3"; 
      case 3: 
       return "SECTION 4"; 
      case 4: 
       return "SECTION 5"; 
     } 
     return null; 
    } 
} 
} 

Dies ist meine Fragmentklasse, die im Moment für alle fünf Fragmente außer dem Klassennamen gleich ist.

public class Videos extends android.support.v4.app.Fragment { 


     public static Videos newInstance() { 
    Videos fragment = new Videos(); 
    return fragment; 
    } 
    public Videos() { 
    } 
    Button ClickMe; 
    TextView tv; 



     @Override 
      public View onCreateView(LayoutInflater inflater, ViewGroup   container, 
        Bundle savedInstanceState) { 
    View rootView = inflater.inflate(R.layout.video, container, false); 
    ClickMe = (Button) rootView.findViewById(R.id.button); 
    tv = (TextView) rootView.findViewById(R.id.textView2); 



    ClickMe.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 
    if(tv.getText().toString().contains("Hello")){ 
    tv.setText("Hi molu"); 
    }else tv.setText("Hello"); 
    } 
    }); 
    return rootView; 
    } 
    } // This is the end of our MyFragments Class 
+2

Ich denke, Case 4 fehlt in Ihrem Adapter. Fügen Sie den Fall 4 hinzu, dann funktioniert es gut –

+1

Fall 5 zu Fall 4 ändern –

+0

Können Sie logcat? – Raghavendra

Antwort

1

Fall 4 fehlt in Ihrem Adapter. Fügen Sie den Fall 4 statt 5 hinzu, dann wird es gut funktionieren.

+0

Okay, warte nur noch 5 min .. @Rakshit Nawani –

+0

@AgniveerKranti: Glücklich zu helfen Prost !! –

Verwandte Themen