我使用tabhost作为我的主要活动。 并在首字母显示第一个列表。 然后点击第二个列表。 这时,屏幕方向改变,屏幕变为初始列表。 怎么解决? 我已经尝试过: 1.在Manifest中添加android:configChanges =“orientation | keyboardHidden”android:screenOrientation =“portrait” 2.在每个活动中添加onConfigurationChanged
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
}
还有其他解决方案吗?
对不起〜 我的意思是tabcontent(FrameLayout)中的内容。 当屏幕改变时,标签(TabWidget)没有重新加载。
在创建时,调用AActivity以显示list1。 在AActivity listonclick中,我将其调用BActivity来显示list2。 但是当屏幕改变时,tabcontent会调用AActivity并显示list1。
答案 0 :(得分:2)
如果我理解正确,您需要保存选中的选项卡。你可以试试这样的......
public class MyTabActivity extends TabActivity
implements TabHost.onTabChangeListener {
private int currentTab = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
...
getTabHost().setOnTabChangedListener(this);
}
@Override
protected void onResume() {
...
currentTab = getSharedPreferences("myapp", MODE_PRIVATE).getInt("currentTab", 0);
getTabHost().setCurrentTab(currentTab);
}
@Override
protected void onPause() {
...
getSharedPreferences("myapp", MODE_PRIVATE).edit().putInt("currentTab", currentTab).commit();
}
@Override
public void onTabChanged(String tabId) {
currentTab = getTabHost().getCurrentTab();
}
}
答案 1 :(得分:1)