TabActivity创建一个intent onClick按钮,但活动接收器的tabhost消失

时间:2012-05-03 18:20:16

标签: android android-intent android-tabhost tabactivity

我有2个活动:A,B。第一个是TabActivity,第二个是Activity。 内部A我有一个可点击的按钮,意图调用另一个活动。

public class A extends TabActivity implements OnClickListener {

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

        tabHost = getTabHost();
        tabHost.addTab(tabHost.newTabSpec("a").setContent(R.id.a).setIndicator("a"));

        b = new Intent(this,B.class);
    tabHost.addTab(tabHost.newTabSpec("b").setContent(b)
            .setIndicator(this.getString(R.string.b)));

        btn.setOnClickListener(this);
    }


    public void onClick(View arg0) {
        if (arg0 == btn) {
        startActivity(b);
        }
    }
}

在B内部,每次单击A类中的按钮时,我都有一个从Internet获取数据的线程:

public class B extends Activity {
    public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.search_result);

       searchHandler = new Handler() {
           @Override
           public void handleMessage(Message msg) {
               draw(msg.obj.toString());
           }
    }

    Intent intent = getIntent();
    if(..)
        sendHttpRequest();
}

数据正确返回,我可以管理它,但我的tabhost消失了。我怎么解决?

2 个答案:

答案 0 :(得分:1)

自动更改标签的android方式是:

tabHost.setCurrentTab(tab);

而不使用:

startActivity(intent);

要在所有Activity上使用它,最好的方法是将TabHost设置为public和static。

答案 1 :(得分:0)

每当您单击按钮时,您都会调用一个不是标签活动的子活动的活动。 所以tabhost是消失的。在标签活动中调用活动b就像这样

 tabHost.addTab(tabHost.newTabSpec("Tab")
                    .setIndicator("Tab")
                    .setContent(new Intent(this, b.class)
                   ));