Android
Android shared preference(앱 내에 토큰,자동로그인 등 데이터를 저장)
leopard4
2023. 1. 31. 11:17
두가지 방법이 있다.
shared preference -> 간단히 저장할때
sqlite -> DB
=> 앱을 삭제하면, 같이 삭제된다.
Main 코드
package com.leopard4.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라는 키로 저장된 데이터가 있으면,
// 에디트텍스트에 표시를 하자!
SharedPreferences sp = getSharedPreferences(SP_NAME, MODE_PRIVATE);
String sentence = sp.getString("sentence", "no data"); // sentence라는 키로 저장된 데이터가 없으면, no data를 반환
int data = sp.getInt("hello", 0);
editSentence.setText(sentence + data);
// 유저가 입력한 문장을 SharedPreferences에 저장
btnSave.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
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();
// 저장을 누르면 hint가 나오게
editSentence.setText("");
}
});
}
}