2017-06-04 2 views
-1

Ich habe ein Array mit meinen Zeichnungsvektoren erstellt und zu Tabs hinzugefügt, aber meine App stürzt am Anfang ab. Ich denke, das Problem ist, wo ich meine setupTabIcons-Methode aufgerufen habe, aber ich konnte nicht herausfinden, was zu tun ist oder wo ich es nennen soll. Dies ist die Klasse, die ich Adapter und tablayout gesetzt habe.Warum kann ich keine Registerkarten mit Symbolen versehen?

public class TabFragment extends Fragment { 
    public static TabLayout tabLayout; 
    public static ViewPager viewPager; 
    public static int int_items = 3 ; 

    @Nullable 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

     // Inflate TabLayout 

     View x = inflater.inflate(R.layout.tab_layout,null); 
     tabLayout = (TabLayout) x.findViewById(R.id.tabs); 
     viewPager = (ViewPager) x.findViewById(R.id.viewpager); 


     // Setup Adapter for ViewPager 

     viewPager.setAdapter(new MyAdapter(getChildFragmentManager())); 

     tabLayout.post(new Runnable() { 
      @Override 
      public void run() { 
       tabLayout.setupWithViewPager(viewPager); 
      } 
     }); 
     setupTabIcons(); 

     return x; 

    } 

    class MyAdapter extends FragmentPagerAdapter{ 

     public MyAdapter(FragmentManager fm) { 
      super(fm); 
     } 


     @Override 
     public Fragment getItem(int position) 
     { 
      switch (position){ 
       case 0 : return new Fragment1(); 
       case 1 : return new Fragment2(); 
       case 2 : return new Fragment3(); 
      } 
      return null; 
     } 

     @Override 
     public int getCount() { 

      return int_items; 

     } 

      @Override 
     public CharSequence getPageTitle(int position) { 

      switch (position){ 
       case 0 : 
        return "1"; 
       case 1 : 
        return "2"; 
       case 2 : 
        return "3"; 
      } 
      return null; 
     } 
    } 
    private int[] tabIcons = { 
      R.drawable.icon_tabs_1, 
      R.drawable.icon_tabs_2, 
      R.drawable.icon_tabs_3 
    }; 

    public void setupTabIcons() { 
     tabLayout.getTabAt(0).setIcon(tabIcons[0]); 
     tabLayout.getTabAt(1).setIcon(tabIcons[1]); 
     tabLayout.getTabAt(2).setIcon(tabIcons[2]); 
    } 



} 

und das ist die Haupttätigkeit ...

public class MainActivity extends AppCompatActivity { 

    private DrawerLayout mDrawerLayout; 
    private ActionBarDrawerToggle mToggle; 

    NavigationView mNavigationView; 
    FragmentManager mFragmentManager; 
    FragmentTransaction mFragmentTransaction; 


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

     //Navigation drawer setup 

     mDrawerLayout = (DrawerLayout)findViewById(R.id.drawer_layout); 
     mToggle = new ActionBarDrawerToggle(this, mDrawerLayout, R.string.open,R.string.close); 

     mDrawerLayout.addDrawerListener(mToggle); 
     mToggle.syncState(); 

     getSupportActionBar().setDisplayHomeAsUpEnabled(true); 


     mFragmentManager = getSupportFragmentManager(); 
     mFragmentTransaction = mFragmentManager.beginTransaction(); 
     mFragmentTransaction.replace(R.id.containerView,new TabFragment()).commit(); 

    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 

     if(mToggle.onOptionsItemSelected(item)){ 
      return true; 
     } 

     return super.onOptionsItemSelected(item); 
    } 
} 
+1

Post Crashlog – Yupi

Antwort

Verwandte Themen