在安卓TabActivity
中。我想在每次访问时重新加载一个标签。例如,如果有一个从数据库获取数据的选项卡,我想在每次出现选项卡活动时获取数据。
我需要把从数据库中获取数据的操作放在onCreate
函数上,onResume
.. ??
在安卓TabActivity
中。我想在每次访问时重新加载一个标签。例如,如果有一个从数据库获取数据的选项卡,我想在每次出现选项卡活动时获取数据。
我需要把从数据库中获取数据的操作放在onCreate
函数上,onResume
.. ??
像这样使用第一个选项卡
public class TabsActivity extends TabActivity {
TabSpec spec1 = tabHost.newTabSpec("tabone");
spec1.setIndicator(createTabView(tabHost.getContext(), "tabone", R.drawable.tab_home));
Intent inte = new Intent(TabsActivity.this, PhotosActivity.class);
inte.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
spec1.setContent(inte);
TabSpec spec2 = tabHost.newTabSpec("tabtwo");
spec2.setIndicator(createTabView(tabHost.getContext(), "tabtwo", R.drawable.tab_account));
Intent _int = new Intent(TabsActivity.this, TabTwoActivity.class);
_int.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
spec2.setContent(_int);
tabHost.addTab(spec1);
tabHost.addTab(spec2);
第二个标签
public class TabTwoActivity extends TabActivity {
TabSpec spec1 = tabHostacc.newTabSpec("tabone");
spec1.setIndicator(createTabView(tabHostacc.getContext(), "tabone", R.drawable.tab_home));
Intent inte = new Intent(TabTwoActivity .this, yourfirstActivity.class);
inte.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
spec1.setContent(inte);
TabSpec spec2 = tabHostacc.newTabSpec("tabtwo");
spec2.setIndicator(createTabView(tabHostacc.getContext(), "tabtwo", R.drawable.tab_account));
Intent _int = new Intent(TabTwoActivity .this, yoursecondActivity.class);
_int.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
spec2.setContent(_int);
tabHostacc.addTab(spec1);
tabHostacc.addTab(spec2);
将您的操作放入OnTabChangeListener
. 在这里您可以检查当前选择的选项卡。相应地进行编码。
请查看这个
实现这一点的简单方法:在 Activity 的 onPause 方法中调用 finish()。
public void onPause() {
super.onPause();
finish();
}
但你不应该真的这样做。尊重 Activity 生命周期,并在用户从 onCreate() 切换到此选项卡时将您需要做的事情移动到 onResume()。
为您清理事情:
-onCreate() 在您第一次切换到选项卡时被调用 - 或者如果它被系统杀死或通过调用 finish()
每次切换到选项卡时都会调用 -onResume()
-onPause() 在您切换离开选项卡时被调用
最好的做法:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setup your contentview etc
}
public void onResume() {
super.onResume();
//get your data
}