我正在尝试使用Tabhost,我有2个标签,每个标签加载一个Activity,每个Activity都有一个aSync方法来解析一些数据。如果我在创建Tabmenu Activity时setCurrentTab(0)
一切正常,但是如果我尝试在第二个选项卡(setCurrentTab(1)
)上启动应用程序,它会尝试加载第一个选项卡,并执行aSync方法第一个选项卡崩溃,因为某些数据缺乏工作方法,根本不应该调用。
这是TabMenu.Activity:
public class TabMenu extends TabActivity {
TabHost tabHost = null;
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
setResult(resultCode);
this.finish();
}
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.menu);
Intent intentToGet = getIntent();
tabHost = getTabHost();
TabHost.TabSpec spec;
Intent intent;
TabHost.TabSpec spec2;
Intent intent2;
intent = new Intent().setClass(this, HoursActivity.class);
intent.putExtra("student", intentToGet.getStringExtra("student"));
intent.putExtra("pass", intentToGet.getStringExtra("pass"));
intent.putExtra("un", intentToGet.getStringExtra("un"));
spec = tabHost
.newTabSpec("hours")
.setIndicator("Hours")
.setContent(intent);
tabHost.addTab(spec);
intent2 = new Intent().setClass(this, NotesActivity.class);
intent2.putExtra("student", intentToGet.getStringExtra("student"));
intent2.putExtra("pass", intentToGet.getStringExtra("pass"));
intent2.putExtra("un", intentToGet.getStringExtra("un"));
spec2 = tabHost
.newTabSpec("notes")
.setIndicator("Notes")
.setContent(intent2);
tabHost.addTab(spec2);
tabHost.setCurrentTab(1);
}
}
有什么想法吗?
答案 0 :(得分:0)
在过去,我必须做类似的事情并通过以下方式解决它:
因此,当您单击选项卡时,将调用onResume,并且Activity可以执行所需的任何设置。如果加载功能执行缓慢,可能会出现性能问题,在这种情况下,您需要稍微修改它,直到onResume加载(保持异步)为止。但这应该至少让你开始。