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 이라는 키로 값을 저장해" 라는 뜻이된다.

반응형