5

मैं कई उदाहरणों, प्रश्नों और ट्यूटोरियल से गुजर चुका हूं लेकिन मैंने कभी भी एक विशिष्ट टैब के साथ एक गतिविधि लॉन्च (एक नया इरादा लॉन्च नहीं किया) देखा है। मुझे पता है कि कोई टैब पर स्विच करने के लिए .setCurrentTab का उपयोग कर सकता है, लेकिन यह केवल मूल गतिविधि टैब के अंदर से किया जा सकता है। एक अलग गतिविधि से एक गतिविधि में निहित एक विशिष्ट टैब लॉन्च करने के बारे में कैसे? क्या यह संभव है? यदि हां, तो कैसे?किसी विशिष्ट टैब के साथ गतिविधि कैसे लॉन्च करें?

मेरे कोड में, एक मानक गतिविधि लॉन्च उपयोगकर्ता पर पहला टैब दिखाया गया है, लेकिन मैं चाहता हूं कि उसे चौथे टैब पर जाना चाहिए यदि उसे किसी अन्य गतिविधि से रीडायरेक्ट किया जा रहा है। मेरे 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); 
अब एक और गतिविधि में

:

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

उत्तर

11

आप नई गतिविधि के निर्माता में setCurrentTab साथ यह अपने आप को संभालने के लिए की आवश्यकता होगी।

जबकि बुला, आप इरादे में अतिरिक्त मान रखना चाहिए -

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

और MyTabActivity के निर्माता में -

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

अपने टैब स्थिति

आशय आशय = नए के साथ इस कोशिश इरादा (MyActivity.this, TabScreenActivity.class); intent.setFlags (Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); intent.putExtra (ConstantString.ViewTab, 1); प्रारंभ गतिविधि (इरादा);

और TabScreenActivity

अगर की निर्माता में (getIntent()! = नल) {

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