Использование Bundle и Intent с TabHost - PullRequest
0 голосов
/ 07 марта 2011

Я использую 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 на нужную вкладку. Это то, что я имею в Клевеле для 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?

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

1 Ответ

1 голос
/ 07 марта 2011

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

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

...