2016-06-17 1 views
0

J'ai créé quelques onglets avec tutoriel this (première réponse) Mais je ne sais pas où devrais-je mettre mes autres codes dans Tab1Fragment.java! Je suis une programmation pour Android Et ce sont les codes:Où devrais-je mettre les codes?

MainActivity.java

package com.example.applicationname; 

import android.os.Bundle; 
import android.support.v4.app.FragmentActivity; 
import android.support.v4.app.FragmentTabHost; 

public class MainActivity extends FragmentActivity { 
    // Fragment TabHost as mTabHost 
    private FragmentTabHost mTabHost; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     mTabHost = (FragmentTabHost)findViewById(android.R.id.tabhost); 
     mTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent); 

     mTabHost.addTab(mTabHost.newTabSpec("tab1").setIndicator("Tab1"), 
      Tab1Fragment.class, null); 
     mTabHost.addTab(mTabHost.newTabSpec("tab2").setIndicator("Tab2"), 
      Tab2Fragment.class, null); 
     mTabHost.addTab(mTabHost.newTabSpec("tab3").setIndicator("Tab3"), 
      Tab3Fragment.class, null); 
    } 
} 

Tab1Fragment.java

package com.example.applicationname; 

import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 

public class Tab1Fragment extends Fragment { 

@Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
     // Inflate the layout for this fragment 
     View V = inflater.inflate(R.layout.tab1_view, container, false); 

     return V; 
    } 
} 
+1

Vous programmez donc en Java? Puis ajoutez l'étiquette. Êtes-vous programmé pour Android? Ensuite, ajoutez ce tag aussi. Et s'il vous plaît [lire sur la façon de poser de bonnes questions] (http://stackoverflow.com/help/how-to-ask). –

+0

Votre question n'est pas claire. Essayez de clarifier votre requête et publiez votre code que vous avez essayé jusqu'à présent. – Shashanth

+0

l'utiliser dans onCreateView() dans la classe Tab1Fragment. –

Répondre

0

La meilleure façon de mettre en œuvre des onglets vous est à TabLayout et ViewPager.

MainActivity

Ce code sera soumis à la méthode onStart/onCreate.

TabLayout tabLay = (TabLayout) findViewById(R.id.tabLayout); 

    tabLay.addTab(tabLay.newTab().setText("Collections")); 
    tabLay.addTab(tabLay.newTab().setText("Loyalty")); 
    tabLay.addTab(tabLay.newTab().setText("Orders")); 


    viewPager = (ViewPager) findViewById(R.id.userTabs); 
    final PagerAdapter adapter = new PagerAdapter 
      (getSupportFragmentManager(), tabLay.getTabCount()); 
    viewPager.setAdapter(adapter); 

    tabLay.setupWithViewPager(viewPager); 
    tabLay.getTabAt(0).setText("Collections"); 
    tabLay.getTabAt(0).setIcon(R.drawable.collage); 
    tabLay.getTabAt(1).setText("Loyalty"); 
    tabLay.getTabAt(1).setIcon(R.drawable.heart_outline); 
    tabLay.getTabAt(2).setText("Orders"); 
    tabLay.getTabAt(2).setIcon(R.drawable.cart_outline); 




    viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLay)); 



    tabLay.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { 
     @Override 
     public void onTabSelected(TabLayout.Tab tab) { 
      viewPager.setCurrentItem(tab.getPosition()); 
     } 

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

     } 

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

     } 
    }); 


} 

Pager Adaptateur

public class PagerAdapter extends FragmentStatePagerAdapter { 
public int mNumOfTabs; 

public PagerAdapter(FragmentManager fm, int NumOfTabs) { 
    super(fm); 
    this.mNumOfTabs = 3; 
} 

@Override 
public Fragment getItem(int position) { 

    switch (position) { 
     case 0: 
      CollectionsFragment tab1 = new CollectionsFragment(); 
      return tab1; 
     case 1: 
      LoyaltyFragment tab2 = new LoyaltyFragment(); 
      return tab2; 
     case 2: 
      OrdersFragment tab3 = new OrdersFragment(); 
      return tab3; 
     default: 
      return null; 
    } 
} 

@Override 
public int getCount() { 
    return mNumOfTabs; 
}} 

Fragment

public class CollectionsFragment extends Fragment { 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     return inflater.inflate(R.layout.frag_collections, container, false); 


    } 
} 

Cette mise en œuvre sera similaire pour chaque fragment.

Cela devrait le faire.

End Result

+0

merci mais je suis un débutant et je ne sais même pas où devrais-je mettre les codes pour chaque onglet! – AmirrezASe7eN

+0

Placez-les dans des fichiers java séparés dans votre répertoire app/src/java avec le fichier MainActivity.java. –