2017-06-04 69 views
-1

我用我的可繪製矢量製作了一個數組,並將它們添加到標籤中,但是我的應用在開始時崩潰。我認爲問題出在我打電話給我的setupTabIcons方法,但我無法弄清楚該做什麼或在哪裏調用它。這是我設置適配器和tablayout的類。爲什麼我無法將圖標添加到選項卡?

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]); 
    } 



} 

,這是主要的活動......

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

後您的崩潰日誌 – Yupi

回答

相關問題