使用Bundle和Intent与TabHost

时间:2011-03-07 16:09:47

标签: android android-intent bundle android-tabhost

我正在使用带有3个标签的TabHost。我需要将使用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中我必须解析捆绑并对这些参数进行操作。基本上我将从数据库中提取数据并使用该数据调用谷歌地图ItemizedOverlay。

onClick使用Intent调用Clevel.class。这有效,我理解Intent是如何工作的。我需要了解的是如何获取或引用所选单选按钮以及其他可能被单击或检查的内容,并将其通过TabHost传递给正确的选项卡。这就是我在Clevel for 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中传递和使用params以及是否应该使用Bundle和Intent或者我可以使用Intent的一些指针?

提前致谢, 专利

1 个答案:

答案 0 :(得分:1)