2013-09-26 3 views
0

Je travaille sur une application en utilisant la barre d'action Sherlock pour Android. J'ai actuellement trois onglets avec les catégories suivantes calculatrice à la maison et conduire.Onglets dans l'action Bar Sherlock

J'ai créé une application de calculatrice plus tôt et je souhaite pouvoir utiliser ce code dans l'onglet de la calculatrice. Comment utiliser une activité dans un onglet Sherlock de la barre d'action?

Voici mon point de vue code téléavertisseur:

package com.d4a.stzh; 

import com.d4a.stzh.FragmentTab1; 
import com.d4a.stzh.FragmentTab2; 
import com.d4a.stzh.FragmentTab3; 
import com.d4a.stzh.CMainActivity; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentManager; 
import android.support.v4.app.FragmentPagerAdapter; 

public class ViewPagerAdapter extends FragmentPagerAdapter { 


    // Declare the number of ViewPager pages 
    final int PAGE_COUNT = 4; 

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

    @Override 
    public Fragment getItem(int arg0) { 
     switch (arg0) { 

      // Open FragmentTab1.java 
     case 0: 
      FragmentTab1 fragmenttab1 = new FragmentTab1(); 
      return fragmenttab1; 

      // Open FragmentTab2.java 
     case 1: 
      FragmentTab2 fragmenttab2 = new FragmentTab2(); 
      return fragmenttab2; 

      // Open FragmentTab3.java 
     case 2: 
      FragmentTab3 fragmenttab3 = new FragmentTab3(); 
      return fragmenttab3; 
     } 
     return null; 
    } 

    @Override 
    public int getCount() { 
     // TODO Auto-generated method stub 
     return PAGE_COUNT; 
    } 

} 

Et voici mon code MainActivity:

package com.d4a.stzh; 

import android.os.Bundle; 
import android.support.v4.app.FragmentManager; 
import android.support.v4.app.FragmentTransaction; 
import android.support.v4.view.ViewPager; 
import android.view.Window; 

import com.actionbarsherlock.app.ActionBar; 
import com.actionbarsherlock.app.ActionBar.Tab; 
import com.actionbarsherlock.app.SherlockFragmentActivity; 
import com.d4a.stzh.ViewPagerAdapter; 
import com.d4a.stzh.R; 

public class MainActivity extends SherlockFragmentActivity { 

    // Declare Variables 
    ActionBar mActionBar; 
    ViewPager mPager; 
    Tab tab; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     // Get the view from activity_main.xml 
     setContentView(R.layout.activity_main); 

     // Activate Navigation Mode Tabs 
     mActionBar = getSupportActionBar(); 
     getSupportActionBar().setDisplayShowTitleEnabled(false); 
     getSupportActionBar().setDisplayShowHomeEnabled(false); 
     mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 

     // Locate ViewPager in activity_main.xml 
     mPager = (ViewPager) findViewById(R.id.pager); 

     // Activate Fragment Manager 
     FragmentManager fm = getSupportFragmentManager(); 

     // Capture ViewPager page swipes 
     ViewPager.SimpleOnPageChangeListener ViewPagerListener = new ViewPager.SimpleOnPageChangeListener() { 
      @Override 
      public void onPageSelected(int position) { 
       super.onPageSelected(position); 
       // Find the ViewPager Position 
       mActionBar.setSelectedNavigationItem(position); 
      } 
     }; 

     mPager.setOnPageChangeListener(ViewPagerListener); 
     // Locate the adapter class called ViewPagerAdapter.java 
     ViewPagerAdapter viewpageradapter = new ViewPagerAdapter(fm); 
     // Set the View Pager Adapter into ViewPager 
     mPager.setAdapter(viewpageradapter); 

     // Capture tab button clicks 
     ActionBar.TabListener tabListener = new ActionBar.TabListener() { 

      @Override 
      public void onTabSelected(Tab tab, FragmentTransaction ft) { 
       // Pass the position on tab click to ViewPager 
       mPager.setCurrentItem(tab.getPosition()); 
      } 

      @Override 
      public void onTabUnselected(Tab tab, FragmentTransaction ft) { 
       // TODO Auto-generated method stub 
      } 

      @Override 
      public void onTabReselected(Tab tab, FragmentTransaction ft) { 
       // TODO Auto-generated method stub 
      } 
     }; 

     // Create first Tab 
     tab = mActionBar.newTab().setText("Home").setTabListener(tabListener); 
     mActionBar.addTab(tab); 

     // Create second Tab 
     tab = mActionBar.newTab().setText("Books").setTabListener(tabListener); 
     mActionBar.addTab(tab); 

     // Create third Tab 
     tab = mActionBar.newTab().setText("Drive").setTabListener(tabListener); 
     mActionBar.addTab(tab); 
     // Create fourth Tab 
       tab = mActionBar.newTab().setText("Calculator").setTabListener(tabListener); 
       mActionBar.addTab(tab); 
    } 

} 

Est-il possible d'insérer une activité dans l'onglet fragment Sherlock?

Répondre

1

Pour votre info.

Un fragment doit toujours être incorporé dans une activité et le cycle de vie du fragment est directement affecté par le cycle de vie de l'activité hôte. Par exemple, lorsque l'activité est en pause, tous les fragments le sont aussi, et lorsque l'activité est détruite, tous les fragments le sont aussi.

Source: http://developer.android.com/guide/components/fragments.html

Vous ne pouvez pas utiliser une activité dans un fragment.

Questions connexes