Android

안드로이드 독학 - SharedPreference

쩡선영 2023. 1. 26. 23:09

SharePreferences란?


입력한 데이터들을 임시저장 해주는 것입니다. 

 

더 자세히 풀어보자면 SharedPreferences는 데이터를 파일로 저장하는데, 이 파일을 앱 폴더 내에 저장되기에 앱을 삭제하면 파일이 삭제되는 형식의 데이터 관리 방식입니다

 

하지만 앱을 단순히 나갔다 들어오게 되면 데이터들이 사라지지 않는거죠!!

 

SharePreferences는 데이터베이스보다 더욱 간단하게 데이터들을 관리할 수 있습니다

 

 

 

사용방법


● onCreate

public class MainActivity extends AppCompatActivity {
    EditText et_save;
    String shared ="file";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        et_save=(EditText) findViewById(R.id.et_save); //activity et_save와 연결

        SharedPreferences sharedPreferences = getSharedPreferences(shared,0); //1
        String value = sharedPreferences.getString("sun", ""); //2
        et_save.setText(value); //3
    }
    
      @Override

    protected void onDestroy() { //activiy를 벗어났을때 실행해줄 수 있는 것
        super.onDestroy();

        SharedPreferences sharedPreferences = getSharedPreferences(shared, 0);
        SharedPreferences.Editor editor = sharedPreferences.edit();
        String value = et_save.getText().toString();
        editor.putString("sun", value);  //edtior에 sun이라는 이름으로 vaule를 넣어주고
        editor.commit(); //save를 완료하라는 구문
    }
}

 

이렇게 getSharedPreferences("파일이름", 모드)로 사용할 수 있습니다!

 

모드를 정리해보자면

모드가 0인 경우 읽기, 쓰기만 가능
MODE_PRIVATE 생성한 Appclicationi에서만 사용 가능
MODE_WORLD_READBLE 외부 App에서 사용 가능하지만 읽기만 가능
MODE_WORLD_WRITABLE 외부 App에서 사용 가능, 읽기/쓰기 모두 가능

이렇게 사용할 수 있습니다

 

OmnDestory는 activity를 벗어났을때 실행시켜주는 것입니다!

또 같이 getSharedPereferences를 선언해주고

Editor을 preferences에 쓰겠다고 연결시켜줍니다

edtior에 sun이라는 별멍으로 value를 넣어주고

save를 완료시켜달라고 까지 해줬습니다.

 

그리고 다시 oncreate로 올라가 

getString을 사용하여 vaule에 sharedPreferences의 값을 받아옵니다

이때 인자값은 ("별명", 공백)으로 받아줍니다

그냥 꺼내오는 것이기 때문에 공백으로 적어줍니다

 

 

 

 

독학으로 처음 하는 거라 좀 어렵고

설명이 너무 복잡하네요ㅠㅠ 

 

참고 : 홍드로이드 유튜브 8차시 강의

https://velog.io/@dlrmwl15/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-SharedPreferences 분 블로그!!

'Android' 카테고리의 다른 글

안드로이드 독학 - WebView  (0) 2023.01.26
안드로이드(JAVA) 독학 - Day2  (0) 2023.01.19
안드로이드(JAVA) 독학 - Day1  (0) 2023.01.16