package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private EditText et_save;
String st="file";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_save = (EditText)findViewById(R.id.et_save);// xml 파일과 연결됐다.
SharedPreferences sharedPreferences = getSharedPreferences(st , 0);
String value = sharedPreferences.getString("str","");//str 별명으로 가져온다.
et_save.setText(value);// 가져온 데이터를 EditText에 출력
//이런 과정을 거치면 기존에 입력했던 정보가 지워지지 않고 앱을 다시 켰을때
//그대로 남아있다.
//여기서는 텍스트로만 이용했지만 앱에서 설정을 관리하는 스위치 버튼의 유지에도
//이용하면 유용할 것 같다.
}
@Override
protected void onDestroy() { // 액티비티를 벗어났을때 호출된다.
//여기다가 SharedPreferences을 사용하면 액티비티가 종료되기전에
//작성된 정보가 다 담기고 나서 종료되기 떄문에 다음 onCreate 때 불러와서
//사용이 가능해지는것
super.onDestroy();
SharedPreferences sharedPreferences = getSharedPreferences(st,0);
SharedPreferences.Editor editor = sharedPreferences.edit();
String value = et_save.getText().toString(); // EditText 에 입력한 값을 가져온다.
editor.putString("str" ,value);//str 별명으로 데이터를 저장해준다.
editor.commit();
}
}
SharedPreferences 는 xml 파일로 데이터를 저장한다.
SharedPreferences sharedPreferences = getSharedPreferences(st , 0);
에서 getSharedPreferences 의 첫번째 인자로 들어간 st 는 xml 파일의 이름을 지정하는것이다.
그리고 아래에 editor.putString("str",value) 에서는 str은 그 xml 안에 저장되어 있는 또 다른 key 라고 생각하면 편하다.
"즉 st 라는 xml 파일안에 str 이라는 키로 값을 저장해" 라는 뜻이된다.
반응형
'Android' 카테고리의 다른 글
안드로이드 - service 정리 (0) | 2020.11.14 |
---|---|
안드로이드 이중스크롤뷰 (0) | 2020.08.24 |
안드로이드 spinner 테두리와 모서리 둥글게 만들기 (0) | 2020.07.30 |
안드로이드의 Context 개념에 대한 개인적인 정리 (0) | 2020.07.14 |
프래그먼트 화면에서 다른 액티비티로 intent하기 (0) | 2020.07.14 |
Android 공부 근황 #1 (0) | 2020.07.05 |
WebView 만들기 (0) | 2020.06.29 |
Intent 예제 (0) | 2020.06.29 |