sachi
sachi

Reputation: 2132

Android: Stop Recreating the activity on orientation change

I have a listview with two buttons in my main.xml layout. On click of one button i'am creating a textview dynamically and adding it at the bottom of the screen to confirm the user interaction. When the user clicks 2nd button (Confirm button), i need to add that text to listview. To support landscape mode, i have the same layout file in layout-land folder. When i click on 1st button it is creating a textview with some text and adding at bottom of the screen. Now if a change the device orientation then it is loading the landscape main.xml and activity is recreating again. So my textview is getting collapsed. How can i prevent that the recreation of activity on orientation change. (But it should pick up the other layout file).

Upvotes: 21

Views: 20295

Answers (2)

Mina Fawzy
Mina Fawzy

Reputation: 21452

You should add screenSize

if your application targets API level 12 or lower, then your activity always handles this configuration change itself (this configuration change does not restart your activity, even when running on an Android 3.2 or higher device).

Added in API level 13.

then it should be like this

<activity
                android:configChanges="keyboardHidden|orientation|screenSize"
                android:name=".testActivity"
                android:label="@string/app_name"></activity>

http://developer.android.com/guide/topics/manifest/activity-element.html

Upvotes: 16

Dhruvil Patel
Dhruvil Patel

Reputation: 2930

Just edit the Activity Tag in androidmanifest.xml.

<activity
            android:configChanges="keyboardHidden|orientation"
            android:name=".testActivity"
            android:label="@string/app_name"></activity>

Upvotes: 47

Related Questions