我有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消失了。我怎么解决?
答案 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)
));