본문 바로가기
Android Studio

[Android Studio] Shared Preferences

by coding_su 2023. 1. 31.

📝Shared Preferences

Shared Preferences는 앱내에서 간단하게 데이터를 저장할때 사용하는 저장소이다

 

저장소 이름은 상수로 만들어 사용하는데 보통 앱 이름을 많이 사용한다

저장하기는 클릭하고 수행되어야 하니 onClick 클래스 안에서 해줬고 불러오기는 onClick 밖에서 입력했다

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라는 키로 저장된 데이터가 있으면 에디트 텍스트에 표시하기
        SharedPreferences sp = getSharedPreferences(SP_NAME, MODE_PRIVATE);
        // sentence라는 키로 저장된 데이터가 없으면 공백으로 가져와 힌트가 보이게하기
        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();
               
               // 첫번째 파라미터는 저장소 이름, 두번째 파라미터는 우리 앱에서만 사용할 수 있도록 모드 설정
                SharedPreferences sp = getSharedPreferences(SP_NAME, MODE_PRIVATE);
                
                // 에디트를 만들어 저장할 데이터 입력
                SharedPreferences.Editor editor = sp.edit();
                editor.putString("sentence", sentence);
                editor.putInt("hello", 100);
                
                editor.apply();

                // 다시 공백으로 입력해서 힌트만 보이게하기
                editSentence.setText("");
            }
        });
    }
}

 

+ 다른 액티비티에서 불러오기

String email = getIntent().getStringExtra("sentence");

댓글