在我的应用程序中有一个列表视图,每次向下滚动到底部时动态增加10个项目。因此,在使用纵向方向时,我向下滚动到100个项目,然后当我将方向更改为横向时,我的列表视图将再次创建(仅显示前10个项目)。这里的问题是当我回到肖像app崩溃说:
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
即使更改方向,如何使列表视图恢复???
答案 0 :(得分:0)
你有两个选择。
选项1
包含android:configChanges="orientation"
两个阻止活动重启
但这会阻止您为不同方向设置不同的UI。
选项2
如果要为不同方向设置不同的UI,则必须编写 更多代码。
读取onSaveInstanceState和onRestoreInstanceState
以保存和检索值
重启活动。
答案 1 :(得分:-1)
答案很简单:您必须更改Activity的AndroidManifest条目并添加
android:configChanges="orientation"
这个将确保如果发生方向更改,则不会重新创建活动。
确保覆盖onConfigurationChanged方法以对更改作出反应(如果您想做出反应;)
答案 2 :(得分:-2)
这种情况正在发生,因为您的活动将在方向更改时重新创建
为避免这种情况,请在活动代码下的AndroidManifest.xml
中添加:
android:configChanges="orientation"
并在您的活动中加入此方法:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
}
希望它有所帮助!!!