Android
[Android] SharedPreference; 데이터 임시 저장
Jintiago
2022. 3. 12. 21:31
앱을 종료하더라도 앱 사용하며 발생한 저장되어야 할 데이터가 남아있도록 하는 것이다.
앱 설정 창에 많이 쓰인다. 설정 값은 앱 종료 후에도 저장되어 있어야 하기 때문이다.
단, 임시저장이기 때문에 앱을 삭제할 경우 저장된 데이터도 함께 삭제된다.
이번에는 앱에서 EditText 상 입력한 문자가 앱 종료 후 재실행 후에도 남아 있도록 하는 예제를 만들어 보았다.
xml에는 EditText만 넣어두고 id를 et_save로 지정해 두었다.
MainActivity.java
package com.example.sharedpreference;
import androidx.appcompat.app.AppCompatActivity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.widget.EditText;
public class MainActivity extends AppCompatActivity {
EditText et_save;
String shared = "file";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_save = (EditText) findViewById(R.id.et_save); //xml의 id java로 연결
// 2. 시작 시 불러오기 구문
SharedPreferences sharedPreferences = getSharedPreferences(shared,0);
String value = sharedPreferences.getString("hong", ""); // 저장된 값 가져올 것이기에 value는 빈칸
et_save.setText(value); //value에 있는 string 값을 setText
}
// 1. 종료 시 저장 구문
@Override
protected void onDestroy() { // activity가 종료(destroy)될 때 호출
super.onDestroy();
SharedPreferences sharedPreferences = getSharedPreferences(shared, 0);
SharedPreferences.Editor editor = sharedPreferences.edit();// SharedPreference에 editor 연결
String value = et_save.getText().toString(); // EditText 에 입력된 문자 가져옴
editor.putString("hong", value); // 받아온 값 에디터에 넣어주기. hong 이라는 이름으로 value 값을 저장할거야
editor.commit(); // 저장을 완료해라
} //
}