0

在我的应用程序中有一个列表视图,每次我向下滚动到底部时它都会动态增加 10 个项目。因此,在使用纵向时,我向下滚动到 100 个项目,然后当我将方向更改为横向时,我的列表视图再次被创建(仅显示前 10 个项目)。这里的问题是当我回到肖像应用程序崩溃时说:

06-06 12:06:54.849: E/AndroidRuntime(4684): java.lang.RuntimeException:
Unable to start activity 
ComponentInfo{com.Android.MyApp/com.Android.MyApp.ListViewActivity}:
 java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0

即使更改方向,如何使列表视图恢复???

4

3 回答 3

0

你有两个选择。

选项1

包括android:configChanges="orientation"两个防止活动重启但这会阻止您为不同的方向设置不同的 UI。

选项 2

如果你想为不同的方向设置不同的用户界面,那么你将不得不编写更多的代码。

阅读 onSaveInstanceState 并onRestoreInstanceState在重新启动活动时保存和检索值。

于 2012-06-06T06:59:18.347 回答
-1

答案很简单:您必须更改 Activity 的 AndroidManifest-entry 并添加

android:configChanges="orientation"

这将确保如果发生方向更改,您的 Activity 不会被重新创建。

确保覆盖onConfigurationChanged方法以对更改做出反应(如果您想做出反应;))

于 2012-06-06T06:55:14.277 回答
-2

发生这种情况是因为您的活动在方向更改时重新创建。
为避免这种情况,请将其添加到您AndroidManifest.xml的活动标签下:

android:configChanges="orientation" 

并将此方法包含在您的活动中:

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    }

希望能帮助到你 !!!

于 2012-06-06T06:54:10.893 回答