자동로그인 구현하기
prefrence를 활용하여 자동 로그인을 구현하는 것을 5주차 목표로 세웠다. 구현을 위해 먼저 회원가입, 로그인 페이지를 만들었다.
activity_join.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"
android:orientation="vertical"
tools:context=".joinActivity">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:fillViewport="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<EditText
android:id="@+id/joinID"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_marginTop="30dp"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:layout_marginBottom="10dp"
android:layout_weight="1"
android:ems="10"
android:hint="ID" />
<EditText
android:id="@+id/joinPassword"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:layout_weight="1"
android:ems="10"
android:hint="비밀번호"
android:inputType="textPassword" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:text="@string/joinPasswordText" />
<EditText
android:id="@+id/joinName"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:layout_marginBottom="10dp"
android:layout_weight="1"
android:ems="10"
android:hint="이름" />
<EditText
android:id="@+id/joinPhone"
android:layout_width="match_parent"
android:layout_weight="1"
android:layout_height="50dp"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:layout_marginBottom="10dp"
android:ems="10"
android:hint="전화번호"
android:inputType="phone" />
<EditText
android:id="@+id/joinAddress"
android:layout_width="match_parent"
android:layout_weight="1"
android:layout_height="50dp"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:layout_marginBottom="10dp"
android:ems="10"
android:hint="우편번호"
android:inputType="textPostalAddress" />
<TextView
android:id="@+id/signagree"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:layout_marginBottom="10dp"
android:ems="10"
android:hint="이용약관"
android:maxLines="20"
android:overScrollMode="always"
android:paddingLeft="10dp"
android:scrollbars="vertical"
android:text="@string/agree"
android:textSize="10dp" />
<RadioButton
android:id="@+id/agreeRb"
android:layout_width="112dp"
android:layout_height="wrap_content"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:text="동의함" />
<RadioButton
android:id="@+id/notagreeRb"
android:layout_width="112dp"
android:layout_height="wrap_content"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:text="동의안함" />
<Button
android:id="@+id/btnSave"
android:layout_width="match_parent"
android:layout_height="24dp"
android:layout_weight="1"
android:text="회원가입하기" />
</LinearLayout>
</ScrollView>
</LinearLayout>
scroll view를 사용하여 화면을 움직일 수 있도록 하였으며, scrollView 안에 joinID
,joinPassword
,joinName
,joinPhone
,joinAddress
,agreeRb, notagreeRb
,btnSave
을 구현하였다.
agreeRb 와 notagreRb 는 라디오 버튼으로 구현하였고, 중복 선택을 할 수 없다.
java 파일에서는 회원가입 버튼을 누르면 적힌 값들이 file에 저장되도록 하였다. 이때, 아이디가 겹치는지 확인하도록 하였으며 만약 비밀번호가 규칙에 맞지 않는 경우 Toast message를 띄우도록 설정하였다. 그리고 값 중에 공백이 존재하는 경우 Toast 메시지를 띄우도록 하였다.
joinActivity.java