Использование Bundle и Intent с TabHost

Я использую TabHost с 3 вкладками. Мне нужно передать параметры, выбранные с одного экрана с помощью Bundle и/или Intent, на следующий, а затем установить правильную вкладку в TabHost и передать эти параметры на правильную вкладку. Я надеюсь, что в этом есть смысл. У меня есть экран конфигурации с несколькими сгруппированными переключателями, 1 флажком и кнопкой. в моем onClick() у меня есть следующий код.

public class Distribute  extends Activity implements OnClickListener {
DistributionMap gixnav;
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    TextView textview = new TextView(this);
    textview.setText("Distribution");
    setContentView(R.drawable.configup);

    Button button = (Button)findViewById(R.id.btn_configup1);
    button.setOnClickListener(this);        
}

public void onClick(View v) {
    Intent intent;
    Bundle extras = new Bundle();

    intent = new Intent().setClass(getApplicationContext(), Clevel.class);
    intent.putExtras(extras);
    startActivity(intent);

}    

}

Мне нужно передать параметры выбора (какой переключатель выбран и установлен флажок на Clevel. В Clevel мне нужно проанализировать пакет и работать с этими параметрами. В основном я буду извлекать данные из БД и использовать эти данные для вызова Google карты ItemizedOverlay.

onClick вызывает Clevel.class, используя Intent. Это работает, и я понимаю, как работает Intent. Что мне нужно понять, так это то, как захватить или сослаться на выбранный переключатель и все, что еще можно щелкнуть или проверить, и передать его через TabHost на правильную вкладку. Это то, что у меня есть в Clevel для TabHost. Из TabHost onCLick нужно будет передать все в Distribute.class

public class Clevel extends TabActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.gixout1);
    Resources res = getResources(); 
    TabHost tabHost = getTabHost();  
    TabHost.TabSpec spec; 
    Intent intent;  


    String mData;

    Bundle extras = getIntent().getExtras();
    if (extras != null) {
        mData = extras.getString("key");

    }

    intent = new Intent().setClass(this, ClevelMain.class);
    spec = tabHost.newTabSpec("Main").setIndicator("C-Level",
                      res.getDrawable(R.drawable.gixmain))
                  .setContent(intent);
    tabHost.addTab(spec);
    intent = new Intent().setClass(this, Distribute.class);
    spec = tabHost.newTabSpec("Config").setIndicator("Distribute",
                      res.getDrawable(R.drawable.gixconfig))
                  .setContent(intent);
    tabHost.addTab(spec);
    intent = new Intent().setClass(this, DistributionMap.class);
    spec = tabHost.newTabSpec("Nav").setIndicator("Map",
                      res.getDrawable(R.drawable.gixnav))
                  .setContent(intent);
    tabHost.addTab(spec);
    tabHost.setCurrentTab(3);
    tabHost.getOnFocusChangeListener();

}

Я действительно ищу некоторые указатели на то, как передавать и использовать параметры в Bundle и следует ли использовать Bundle и Intent или я могу просто использовать Intent?

Заранее спасибо, Пэт


person apesa    schedule 07.03.2011    source источник


Ответы (1)


Это будет полезно для вас

Обмен данными между вкладками...

person Jorgesys    schedule 07.03.2011
comment
Спасибо, я смог заставить это работать. Теперь у меня правильно работает Bundle/Intent. Как вы ссылаетесь на проверенные или выбранные переключатели в onClick? - person apesa; 08.03.2011