Отношения между вкладками - Android - PullRequest
0 голосов
/ 10 июля 2011

Я хочу создать приложение с двумя вкладками, как показано ниже:

MainClass:

private TabHost tabHost;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    tabHost = (TabHost)findViewById(android.R.id.tabhost);

    TabSpec firstTabSpec = tabHost.newTabSpec("tid1");
    TabSpec secondTabSpec = tabHost.newTabSpec("tid2");

    firstTabSpec.setIndicator("First Tab Name").setContent(new Intent(this,MainTab.class));
    secondTabSpec.setIndicator("Second Tab Name").setContent(new Intent(this,ResultTab.class));

    tabHost.addTab(firstTabSpec);
    tabHost.addTab(secondTabSpec);
}

public TabHost getTabHost() {
    return tabHost;
}

FirstTab:

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.maintab);
    }

SecondTab:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
setContentView(R.layout.resulttab);
}

На первой вкладке у меня есть несколько кнопок, с помощью которых я вычисляю некоторые математические операции. Желание отобразить результат в SecondTab после завершения расчета.

Первая проблема: Я не знаю, как я могу отправить данные (String) из FirstTab в SecondTab. Я поднос:

  • создание собственного параметра в классе Tab,
  • setOnTabChangedList
  • и некоторые похожие но безрезультатно.

Вторая проблема (пока небольшая :)): Когда я выбрал некоторые параметры (мои кнопки, список, ...) в FirstTab и изменил представление на SelectTab, а возврат в FirstTab, выбранные параметры исчезли.

Кто-нибудь мне поможет?

1 Ответ

1 голос
/ 10 июля 2011
  1. Вы можете отправлять строки с намерениями. Например:

    Intent intent = new Intent (). SetClass (this, Secondtabclass.class); intent.putExtra ("mykey", "string to send");

    startActivity (намерение);

А затем по получающей деятельности вы выполняете:

String recievedString = this.getIntent().getStringExtra("mykey");
  1. Вы можете сохранить состояние своего списка и все, что захотите, если переопределите методы OnResume и OnPause. Пауза вызывается каждый раз, когда ваша деятельность теряет фокус, а возобновление вызывается каждый раз, когда ваша активность возобновляет фокус. Как это:

    @ Override protected void onResume () { super.onResume ();

        //Do stuff
    }
    
...