Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 方向更改时无法获取tabHost对象_Android_Android Tabhost_Android Orientation_Android Tabs_Android Tabactivity - Fatal编程技术网

Android 方向更改时无法获取tabHost对象

Android 方向更改时无法获取tabHost对象,android,android-tabhost,android-orientation,android-tabs,android-tabactivity,Android,Android Tabhost,Android Orientation,Android Tabs,Android Tabactivity,我正在尝试在应用程序中实现方向功能。该应用程序基本上由选项卡组成,使用TabHost。每个选项卡都是一个包含几个活动的活动组。每个子活动都使用AsyncTask运行后台任务,以提取服务器数据并呈现UI 比如说, HomeActivity- tab activity class that creates all the tabs UserActivity- an activity group class representing a tab (say Tab 1) TabOne- child ac

我正在尝试在应用程序中实现方向功能。该应用程序基本上由选项卡组成,使用TabHost。每个选项卡都是一个包含几个活动的活动组。每个子活动都使用AsyncTask运行后台任务,以提取服务器数据并呈现UI

比如说,

HomeActivity- tab activity class that creates all the tabs
UserActivity- an activity group class representing a tab (say Tab 1)
TabOne- child activity inside UserActivity group
用户在成功登录后不久会看到选项卡1。当我尝试将定向功能设置到此选项卡时,问题开始出现。在活动(TabOne)中,我添加了以下内容

@Override
public void onSaveInstanceState(Bundle outState) {
  System.out.println("saving state..!");
  outState.putStringArray("imageUrls", imageArray);
  super.onSaveInstanceState(outState);
}

@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
  System.out.println("restoring state..!");
  imageArray = savedInstanceState.getStringArray("imageUrls");
  super.onRestoreInstanceState(savedInstanceState);
}

我能够获取“imageUrls”状态。但是,后来,我无法访问静态选项卡主机变量

 HomeActivity.tabHost.getTabWidget().getChildAt(1)
tabHost变量为空!我没有拯救任何一个州。我如何可能保存tabHost实例

在研究其他社区帖子时,我发现了“onRetainonConfiguration实例()。我实现了同样的功能

 public Object onRetainNonConfigurationInstance() {
   System.out.println("retaining state..!");
   return HomeActivity.tabHost;
 }
但是此对象返回为null。有人能告诉我使用tabHost处理应用程序方向更改的步骤吗

如果你觉得有什么不明白的地方,问我

提前谢谢

已解决:将屏幕大小添加到清单中的活动标记修复了该问题

<activity android:name=".HomeActivity"
          android:configChanges="orientation|screenSize"/>

您可以添加参数

android:configChanges="orientation"
到清单中的活动。我想这是你想要的。它应该是这样的:

<activity
        android:name="com.your.package.YourActivity"
        android:configChanges="orientation"
</activity>

已经添加了这个。android:configChanges=“keyboard | keyboardHidden | orientation”您是否将其添加到具有TabHost的活动以及显示在选项卡中的活动中?我可以在模拟器中看到屏幕方向发生了变化。不久之后,NullPointerException被抛出到tabHost变量。恭喜,您也可以发布解决方案吗?:)编辑问题!看看吧;)