Android
SharedPreferences 사용 예제
최데브
2020. 6. 29. 00:57
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 이라는 키로 값을 저장해" 라는 뜻이된다.