안드로이드 SharedPreferences 옵션이나 간단한 데이터 저장하기
결과
초기 화면
데이터 입력, 종료 후 재시작
Layout 코드
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:hint="ID"
android:textSize="30sp" />
<EditText
android:id="@+id/editText2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:hint="Pass"
android:textSize="30sp" />
<CheckBox
android:id="@+id/checkBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="CheckBox"
android:textSize="30sp"/>
</LinearLayout>
Java 코드
package com.example.testapp;
import androidx.appcompat.app.AppCompatActivity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
EditText editText, editText2;
CheckBox checkBox;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = findViewById(R.id.editText);
editText2 = findViewById(R.id.editText2);
checkBox = findViewById(R.id.checkBox);
SharedPreferences sp = getSharedPreferences("temp", MODE_PRIVATE);
String s = sp.getString("id", "");
String s2 = sp.getString("pwd", "");
Boolean b = sp.getBoolean("cb", false);
editText.setText(s);
editText2.setText(s2);
checkBox.setChecked(b);
}
@Override
protected void onStop() {
super.onStop();
SharedPreferences prefer = getSharedPreferences("temp", MODE_PRIVATE);
SharedPreferences.Editor editor = prefer.edit();
editor.putString("id", editText.getText().toString());
editor.putString("pwd", editText2.getText().toString());
editor.putBoolean("cb", checkBox.isChecked());
editor.apply();
}
}
데이터 저장하기
- onStop()부분에서 구현해줌으로써 종료하거나 할때 데이터를 저장할 수 있도록 한다.
- getSharedPerferences( 이름, 모드) 로 SharedPerferences 객체를 가져온다.
이름은 저장할 데이터 분류의 따라 지정해주며 모드는
MODE_PRIVATE : 해당 application에서만 사용 가능
MODE_WORLD_READABLE : 다른 application에서 읽기 가능
MODE_WORLD_WRITEABLE : 다른 application에서 쓰기 가능
들이 있으며 보안상의 문제도 있으니 왠만해서는 MODE_PRIVATE를 사용한다.
- 데이터를 저장할 때는 editor 객체의 putXXX(키, 값) 메소드를 사용하여서 <키, 값> 형태로 저장한다.
- 삭제해줄 때에는 remove(키)를 사용하면 가능하다.
- 값을 저장해주었으면 마지막으로 apply()나 commit()을 해준다.
데이터 가져오기
- 저장된 데이터를 다시 가져올 때도 우선 getSharedPerferences( 이름, 모드) 로 SharedPerferences 객체를 가져온다.
- 가져온 객체의 getXXX(키) 메소드를 사용하여서 <키, 값> 형태로 저장하였던 값을 가져올 수 있다.
'Android' 카테고리의 다른 글
안드로이드 dialog, custom dialog 다이얼로그 (0) | 2020.03.30 |
---|---|
안드로이드 Button style 버튼 꾸미기 (0) | 2020.03.29 |
안드로이드 뷰페이저, 탭 레이아웃 구현 (2) (1) | 2020.02.13 |
안드로이드 뷰페이저, 탭 레이아웃 구현 (1) - 좌우로 밀어서 페이지 전환 (0) | 2020.02.12 |
안드로이드 스튜디오 adb를 이용한 스마트폰 원격 연결 (0) | 2020.01.21 |