안드로이드 스튜디오 데이터 저장
안드로이드 스튜디오반응형
회전시 데이터 유지
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" >
<TextView
android:id="@+id/level"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="level : 0"
android:textSize="20dp"/>
<Button
android:id="@+id/level_up"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="level up" />
<TextView
android:id="@+id/score"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="score : 0"
android:textSize="20dp"/>
<Button
android:id="@+id/score_up"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="score up" />
</LinearLayout>
package com.example.cycle_save;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
Button level_up, score_up;
TextView level, score;
int mlevel=0, mscore=0;
public static final String STATE_SCORE = "playerScore";
public static final String STATE_LEVEL = "playLevel";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
level_up = findViewById(R.id.level_up);
score_up = findViewById(R.id.score_up);
level = findViewById(R.id.level);
score = findViewById(R.id.score);
level_up.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mlevel++;
level.setText("level : "+mlevel);
}
});
score_up.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mscore+=100;
score.setText("score : "+mscore);
}
});
if (savedInstanceState == null){}
else {
mlevel = savedInstanceState.getInt(STATE_LEVEL);
mscore = savedInstanceState.getInt(STATE_SCORE);
level.setText("level : "+mlevel);
score.setText("score : "+mscore);
}
}
@Override
protected void onSaveInstanceState (@NonNull Bundle outState) {
outState.putInt(STATE_SCORE,mscore);
outState.putInt(STATE_LEVEL,mlevel);
super.onSaveInstanceState(outState);
}//상태 저장
}
-> 원래 화면이 돌가면 데이터가 날아가지만 이 데이터를 유지하게 하는 것
반응형
'안드로이드 스튜디오' 카테고리의 다른 글
안드로이드 스튜디오 프래그먼트 2 (0) | 2020.05.09 |
---|---|
안드로이드 스튜디오 Fragment (0) | 2020.05.09 |
안드로이드 스튜디오 데이터 저장 2 (SharedPreferences) (0) | 2020.05.03 |
안드로이드 스튜디오 데이터 저장하기 (SharedPreferences) (0) | 2020.05.03 |
안드로이드 스튜디오 GridView (0) | 2020.05.03 |