5

Birçok örnek, soru ve öğreticiden geçtim, ancak belirli bir sekmeyle bir etkinlik lansmanı (yeni bir niyet başlatmak) görmedim. Bir sekmeye geçmek için .setCurrentTab'u kullanabileceğini biliyorum, ancak bu yalnızca ana etkinlik sekmesinden yapılabilir. Farklı bir etkinlikteki bir etkinlikte yer alan belirli bir sekmeyi kullanıma sunmaya ne dersiniz? Mümkün mü? Öyleyse nasıl olacak?Belirli bir sekmede bir etkinlik nasıl başlatılır?

Kodumda, standart bir etkinlik başlatma kullanıcı üzerinde ilk sekme gösterilir, ancak başka bir etkinlikten yönlendirilmek üzere dördüncü sekmeye gitmesini istiyorum. Benim TabHost kodu (MyTabActivity): başka bir etkinlikle Şimdi

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

:

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

cevap

11

Yeni etkinliğin yapıcısı içinde setCurrentTab ile kendiniz idare gerekecektir.

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

Ve MyTabActivity kurucusunda - - çağrı yaparken

, sen niyet içinde ek değerler koymalıyız

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

sekme pozisyonunda yeni

Niyet niyet = ile bu deneyin Niyet (MyActivity.this, TabScreenActivity.class); intent.setFlags (Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); intent.putExtra (ConstantString.ViewTab, 1); startActivity (intent);

Ve TabScreenActivity

eğer kurucuları içindedir

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