(android) смени вкладку вместо startActivity - PullRequest
0 голосов
/ 14 октября 2011

Ну, как я уже сказал, у меня есть tabView в моей программе, и я хочу передать некоторые данные через действия.Когда я пробую startActivity, вкладки исчезают.Поэтому я хочу вместо того, чтобы попробовать startActivity.Я хочу изменить вкладку.

У меня есть 3 действия, одно для каждой вкладки и одно для хранения вкладки.

public class Start extends TabActivity {
TabHost tabHost;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.start);

Resources res = getResources(); // Resource object to get Drawables
tabHost = getTabHost();  // The activity TabHost
TabHost.TabSpec spec;  // Reusable TabSpec for each tab
Intent intent;  // Reusable Intent for each tab

intent = new Intent().setClass(this, Home.class);
spec = tabHost.newTabSpec("Home").setIndicator("Home",
                  res.getDrawable(R.drawable.ic_tab_main))
              .setContent(intent);
tabHost.addTab(spec);

// Do the same for the other tabs
intent = new Intent().setClass(this, History.class);
spec = tabHost.newTabSpec("History").setIndicator("History",
                  res.getDrawable(R.drawable.ic_tab_history))
              .setContent(intent);
tabHost.addTab(spec);

intent = new Intent().setClass(this, Settings.class);
spec = tabHost.newTabSpec("Settings").setIndicator("Settings",
                  res.getDrawable(R.drawable.ic_tab_settings))
              .setContent(intent);
tabHost.addTab(spec);

tabHost.setCurrentTab(0);

Вот как я могу добавить вкладки, и я не знаю, какизменить вкладку из другой деятельности.Я попробовал это:

  Start tab;
  tab.tabHost.setCurrentTab(0);

но я получил ошибку ....: /

Ответы [ 2 ]

0 голосов
/ 14 октября 2011

Вам не нужно звонить startActivity, чтобы переключаться между вкладками, TabHost позаботится об этом за вас.Что касается передачи данных между вкладками, рассматривали ли вы хранение данных в tabActivity?Вы можете получить ссылку на нее из своих вкладок (детей), используя getParent() и приведя ее к своему классу, в вашем случае (Start) Например:

Start parentActivity;
parentActivity = (Start) getParent();

Теперь вы можете получить доступ к данным иметоды, которые вы создаете в tabActivity.

0 голосов
/ 14 октября 2011
...