반응형
-
package com.example.test2_1027;
-
-
import android.app.Activity;
-
import android.content.res.Configuration;
-
import android.os.Bundle;
-
import android.support.v7.app.ActionBarActivity;
-
import android.view.View;
-
import android.view.View.OnClickListener;
-
import android.widget.Button;
-
import android.widget.TextView;
-
-
public class MainActivity extends Activity implements OnClickListener {
-
-
TextView tView;
-
private int cnt = 0;
-
-
@Override
-
protected void onCreate(Bundle savedInstanceState) {
-
super.onCreate(savedInstanceState);
-
setContentView(R.layout.activity_main);
-
-
tView = (TextView) findViewById(R.id.textView1);
-
btn.setOnClickListener(this);
-
}
-
-
@Override
-
public void onConfigurationChanged(Configuration newConfig) {
-
// TODO Auto-generated method stub
-
super.onConfigurationChanged(newConfig);
-
}
-
-
@Override
-
// TODO Auto-generated method stub
-
if (v.getId() == btn.getId()) {
-
cnt++;
-
tView.setText(""+cnt);
-
}
-
}
-
}
Code에 onConfigurationChanged 선언하고, AndroidManifest.xml 코드에 아래와 같은 코드를 추가한다.
-
<?xml version="1.0" encoding="utf-8"?>
-
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-
package="com.example.test2_1027"
-
android:versionCode="1"
-
android:versionName="1.0" >
-
-
<uses-sdk
-
android:minSdkVersion="8"
-
android:targetSdkVersion="16" />
-
-
<application
-
android:allowBackup="true"
-
android:icon="@drawable/ic_launcher"
-
android:label="@string/app_name"
-
android:theme="@style/AppTheme"
-
>
-
<activity
-
android:name=".MainActivity"
-
android:label="@string/app_name"
-
android:configChanges="orientation|screenSize">
-
<intent-filter>
-
<action android:name="android.intent.action.MAIN" />
-
-
<category android:name="android.intent.category.LAUNCHER" />
-
</intent-filter>
-
</activity>
-
</application>
-
-
</manifest>
위 방법말고, Activity의 Bundle을 이용하여 유지할 수 있다.
Activity회전이 파괴 후 새로이 생성하게 되므로 저장해 놓았다가 재 생성시 다시 가져다 쓰는 방법을 이용한다.
-
package com.example.test2_1027;
-
-
import android.app.Activity;
-
import android.content.res.Configuration;
-
import android.os.Bundle;
-
import android.support.v7.app.ActionBarActivity;
-
import android.transition.Scene;
-
import android.view.View;
-
import android.view.View.OnClickListener;
-
import android.widget.Button;
-
import android.widget.TextView;
-
-
public class MainActivity extends Activity implements OnClickListener {
-
-
TextView tView;
-
private int cnt = 0;
-
-
@Override
-
protected void onCreate(Bundle savedInstanceState) {
-
super.onCreate(savedInstanceState);
-
setContentView(R.layout.activity_main);
-
-
//저장되어 있는 데이터 가져오기.
-
if(savedInstanceState != null)
-
{
-
cnt=savedInstanceState.getInt("num");
-
}
-
-
tView = (TextView) findViewById(R.id.textView1);
-
tView.setText(""+cnt);
-
btn.setOnClickListener(this);
-
}
-
-
@Override
-
// TODO Auto-generated method stub
-
if (v.getId() == btn.getId()) {
-
cnt++;
-
tView.setText(""+cnt);
-
}
-
}
-
-
-
//Activity 파괴시 데이터 저장
-
@Override
-
protected void onSaveInstanceState(Bundle outState) {
-
// TODO Auto-generated method stub
-
super.onSaveInstanceState(outState);
-
outState.putInt("num", cnt);
-
}
-
}
그럼 아래와 같이 화면 회전이 되도 그대로 변수값이 유지된다.
화면 회전 후에도 그대로 유지된다.
반응형
'Android' 카테고리의 다른 글
[Android Studio] The emulator process for AVD _xxx has terminated. (Emulator 실행 실패 문제 해결) (0) | 2022.04.07 |
---|---|
[Android] Button Listener가 아닌 Handler를 이용하여 구현하기 (0) | 2014.10.27 |
[Eclipse] fail to create the java virtual machine (0) | 2014.10.27 |
WAIT_FOR_CONCURRENT_GC ?? (0) | 2013.08.30 |
죽지 않는 서비스 등록(알람 이용) (0) | 2013.08.30 |