ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [안드로이드] 데이터 저장하기
    Android/공부 2020. 6. 22. 16:43
    SharedPreferences를 사용해 데이터 저장하는 앱 만들어보기
    • SharedPreferences는 (key, value) 형태로 사용하며, 자동 로그인과 같이 간단한 데이터를 저장해야 하는 경우에사용한다.

     

     

     

     

     

     

     

    1. xml

    1. activity_main.xml

    • 간단한 로그인 화면을 만들어준다.

     

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity"
        android:orientation="vertical"
        android:padding="4dp">
    
        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/edit_id"
            android:hint="이메일을 입력하세요"
            android:inputType="text"/>
    
        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/edit_pass"
            android:hint="패스워드를 입력하세요"
            android:inputType="numberPassword"/>
    
        <CheckBox
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="이메일 저장"
            android:id="@+id/checkbox"
            android:checked="true"/>
    
        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="로그인"
            android:id="@+id/btn_login"
            android:onClick="onClick"/>
    </LinearLayout>

     

     


    2. java

    1. MainActivity.java

     

    package com.example.myloginex;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.content.SharedPreferences;
    import android.os.Bundle;
    import android.preference.PreferenceManager;
    import android.view.View;
    import android.widget.CheckBox;
    import android.widget.EditText;
    import android.widget.Toast;
    
    public class MainActivity extends AppCompatActivity {
    
        // 데이터를 저장했다가 앱이 재실행됐을때 불러올 데이터 -> 아이디, 체크박스 체크여부
        private EditText edit_id;
        private CheckBox checkbox;
    
        // 설정 정보 저장 객체
        private SharedPreferences mPreferences;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            edit_id = (EditText) findViewById(R.id.edit_id);
            checkbox = (CheckBox) findViewById(R.id.checkbox);
    
            // 객체 초기화
            mPreferences = PreferenceManager.getDefaultSharedPreferences(this);
    
            // 저장된 이메일을 불러와서 복원
            Boolean isChecked = mPreferences.getBoolean("save", false);
            checkbox.setChecked(isChecked);
            if(isChecked) {
                String email = mPreferences.getString("email", "");
                edit_id.setText(email);
            }
        }
    
        @Override
        protected void onDestroy() {
            super.onDestroy();
    
            // SharedPreferences의 수정 가능한 객체 얻기
            SharedPreferences.Editor editor = mPreferences.edit();
            // 저장할 데이터
            editor.putBoolean("save", checkbox.isChecked());
            editor.putString("email", edit_id.getText().toString());
    
            //저장
            editor.apply();
    
        }
    
        public void onClick(View view) {
            Toast.makeText(getApplicationContext(), "종료합니다.", Toast.LENGTH_SHORT).show();
            finish();
        }
    }

     


    3. 결과화면

    안드로이드 화면

     

    댓글

Designed by Tistory.