Как запустить мероприятие со специальной вкладкой?

Я рассмотрел множество примеров, вопросов и руководств, но я никогда не видел запуск активности (запуск нового намерения) со специальной вкладкой. Я знаю, что для переключения на вкладку можно использовать .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? } 

Вам нужно будет обработать его самостоятельно с помощью 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 } 

Попробуйте это с вашей вкладкой

Intent intent = новый Intent (MyActivity.this, TabScreenActivity.class); Intent.setFlags (Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); intent.putExtra (ConstantString.ViewTab, 1); startActivity (намерение);

И в конструкторе TabScreenActivity

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