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

選択肢は 2 つあります。

オプション1

android:configChanges="orientation"アクティビティの再起動を防止する 2 つを含めますが、これにより、方向が異なる場合に異なる UI を設定できなくなります。

オプション 2

向きごとに異なる UI をセットアップする場合は、もう少しコードを記述する必要があります。

onSaveInstanceState を読み取り、onRestoreInstanceStateアクティビティの再起動中に値を保存および取得します。

于 2012-06-06T06:59:18.347 に答える
-1

答えは非常に簡単です。アクティビティの AndroidManifest-entry を変更して追加する必要があります

android:configChanges="orientation"

これにより、方向の変更が発生した場合にアクティビティが再作成されないようになります。

変更に対応するために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 に答える