5

He examinado muchos ejemplos, preguntas y tutoriales, pero nunca he visto un lanzamiento de actividad (lanzar un nuevo intento) con una pestaña específica. Sé que se puede usar .setCurrentTab para cambiar a una pestaña, pero esto solo se puede hacer desde dentro de la pestaña de actividad principal. ¿Qué hay de lanzar una pestaña específica contenida en una actividad de una actividad diferente? ¿Es posible? Si es así, ¿cómo?¿Cómo iniciar una actividad con una pestaña específica?

En mi código, en un usuario de inicio de actividad estándar se muestra la primera pestaña, pero quiero que vaya a la cuarta pestaña en caso de que se lo redirija de otra actividad. Mi código TabHost (MyTabActivity):

int tabIndex = 0; 

      mTabHost.addTab(mTabHost.newTabSpec("top10").setIndicator("Top 10").setContent(R.id.Top_10)); 
      mTabHost.addTab(mTabHost.newTabSpec("billable").setIndicator("Billable").setContent(R.id.Billable)); 
      mTabHost.addTab(mTabHost.newTabSpec("product").setIndicator("Product").setContent(R.id.Product)); 
      mTabHost.addTab(mTabHost.newTabSpec("regular").setIndicator("Regular").setContent(R.id.General)); 


      mTabHost.setCurrentTab(tabIndex); 

Ahora en otra actividad:

public void gotoTab() { 
//This will take me to the first tab 
Intent i = new Intent(this, MyTabActivity.class); 
startActivity(i); 
finish(); 
//How to I make it take me to the fourth tab? 
} 

Respuesta

11

Usted tendrá que gestionar usted mismo con setCurrentTab en el constructor de la nueva actividad.

Durante la llamada, usted debe poner los valores adicionales en el intento -

Intent i = new Intent(this, MyTabActivity.class); 
i.putExtra("FirstTab", 4); 

Y en el constructor de MyTabActivity -

Intent i = getIntent(); 
int tabToOpen = i.getIntExtra("FirstTab", -1); 
if (tabToOpen!=-1) { 
    // Open the right tab 
} 
0

tratar esto con su posición de tabulación

Intención intención = new Intención (MyActivity.this, TabScreenActivity.class); intent.setFlags (Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); intent.putExtra (ConstantString.ViewTab, 1); startActivity (intención);

Y en el constructor de TabScreenActivity

si (getIntent()! = Null) {

 tabPosition = getIntent().getIntExtra(ConstantString.ViewTab, tabPosition); 

     if (tabPosition == 1) { 
      new Handler().postDelayed(new Runnable() { 
       @Override 
       public void run() { 
        viewPager.setCurrentItem(1, true); 
       } 
      }, 1000); 
     } else { 
      viewPager.setCurrentItem(0, true); 
     } 


    } else { 
     viewPager.setCurrentItem(0, true); 
    } 
Cuestiones relacionadas