2

以下のコードは、画像ビューを動的に作成し、ボタンのクリック時にその親レイアウトに追加します。これはうまくいきます。デバイスの向きを変更すると、すべてが消えます。つまり、デバイスの向きを変更すると画像を追加した後、追加された画像が失われます。なんで?デバイスの向きも変更した後、どうすれば画像を元に戻すことができますか?

 @Override
public void onClick(View v) {
    //create an imageview
    ImageView img = new ImageView(getApplicationContext());

    //set layout parameters
    img.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT)); 

    //set image source
    img.setImageResource(R.drawable.back);

    //add imageview to parent layout
    parentView.addView(img);        

}
4

2 に答える 2

1

あなたはthisesの方法でそれを扱うことができます

1 - onSaveInstanceState() コールバック

例:インスタンス状態の保存を使用して Android アクティビティ状態を保存する http://android-er.blogspot.in/2011/09/onsaveinstancestate-and.html

2- onRetainNonConfigurationInstance() と getLastNonConfigurationInstance()

例: getLastNonConfigurationInstance()

3 - android:configChanges in menifest および orverirding onConfigChange in activity ex: http://developer.android.com/resources/articles/faster-screen-orientation-change.html 回転 Android でのアクティビティの再起動

http://developer.android.com/guide/topics/resources/runtime-changes.html

必要に応じていずれかの方法を選択してください...

于 2012-05-25T05:20:09.380 に答える
0

レイアウトに影響を与えたくない場合は、このタグを xml ファイルに追加してください。

android:configChanges="orientation|keyboardHidden"

これはレイアウトの変更に役立ちますが、他のことには影響しません。

  <activity
        android:label="@string/app_name"
        android:name=".YourActivity" android:configChanges="orientation|keyboardHidden"/>
于 2012-05-25T05:16:00.020 に答える