본문 바로가기
안드로이드

안드로이드 - sharedPreference 를 이용한 데이터 저장과 불러오기

by leo104 2023. 1. 31.
728x90
package com.leo104.saveapp;

import androidx.appcompat.app.AppCompatActivity;

import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends AppCompatActivity {

    EditText editSentence;
    Button btnSave;

    private static final String SP_NAME = "save_app";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        editSentence = findViewById(R.id.editSentence);
        btnSave = findViewById(R.id.btnSave);

        // 만약 앱 저장소에 sentence라는 키 값으로 저장된 데이터가 있으면
        // EditText에 표시를 하자!
        SharedPreferences sp = getSharedPreferences(SP_NAME,MODE_PRIVATE);
        String sentence = sp.getString("sentence","");
        int data = sp.getInt("hello",0);
        editSentence.setText(sentence+data);


        // 유저가 입력한 문장을 Shared Preference에 저장한다.
        btnSave.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String sentence = editSentence.getText().toString().trim();

                // 첫번째 파라미터는 저장소 이름을 적어준다.
                // 두번째 파라미터는 우리 앱에서만 사용할 수 있도록 MODE_PRIVATE
                SharedPreferences sp = getSharedPreferences(SP_NAME,MODE_PRIVATE);
                SharedPreferences.Editor editor = sp.edit();
                editor.putString("sentence",sentence);
                editor.putInt("hello",100);
                editor.apply();

                // 저장 이후에 다시 hint로 화면에 보여주는 코드
                editSentence.setText("");
            }
        });
    }
}
728x90