2016-06-17 3 views
0

Я создал несколько вкладок с this учебник (первый ответ) Но я не знаю, куда мне поместить другие коды в Tab1Fragment.java! Я программирования для Android И эти коды:Где я должен помещать коды?

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

Итак, вы программируете на Java? Затем добавьте тег. Вы программируете для Android? Затем добавьте этот тег. И пожалуйста [читайте о том, как задавать хорошие вопросы] (http://stackoverflow.com/help/how-to-ask). –

+0

Ваш вопрос непонятен. Попробуйте уточнить ваш запрос и опубликовать свой код, который вы пробовали до сих пор – Shashanth

+0

использовать его в onCreateView() в Tab1Fragment Class. –

ответ

0

Самый простой способ реализации вкладок до TabLayout и ViewPager.

MainActivity

Этот код будет приходить под 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) { 

     } 
    }); 


} 

Пейджер адаптер

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

Фрагмент

public class CollectionsFragment extends Fragment { 

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


    } 
} 

Эта реализация будет одинакова для каждого фрагмента.

Это должно сделать это.

End Result

+0

спасибо, но я новичок и даже не знаю, где я должен помещать коды для каждой вкладки! – AmirrezASe7eN

+0

Поместите их в отдельные java-файлы в каталог app/src/java с файлом MainActivity.java. –

Смежные вопросы