package com.yujinoh.register;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import androidx.appcompat.app.AppCompatActivity;
import com.google.android.material.snackbar.Snackbar;
public class MainActivity extends AppCompatActivity {
EditText editEmail;
EditText editPassword;
EditText editPassword2;
Button btnRegister;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editEmail = findViewById(R.id.editEmail);
editPassword = findViewById(R.id.editPassword);
editPassword2 = findViewById(R.id.editPassword2);
btnRegister = findViewById(R.id.btnRegister);
btnRegister.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 1. 입력사항들을 모두 가져온다
String email = editEmail.getText().toString().trim();
String password = editPassword.getText().toString().trim();
String password2 = editPassword2.getText().toString().trim();
// 2. 필수항목 체크
if (email.isEmpty() || password.isEmpty() || password2.isEmpty()){
Snackbar.make(btnRegister,"필수항목입니다. 모두 입력하세요.",Snackbar.LENGTH_SHORT).show();
return;
}
// 3. 이메일 형식이 맞는지 체크
if (email.contains("@") == false){
Snackbar.make(btnRegister,"이메일을 제대로 입력하세요.",Snackbar.LENGTH_SHORT).show();
return;
}
// 4. 만약에 비번 길이 제약이 있다면,
if (password.length() < 4 || password.length() > 12){
Snackbar.make(btnRegister,"비밀번호 길이를 확인하세요.",Snackbar.LENGTH_SHORT).show();
return;
}
// 5. 비밀번호가 비밀번호 확인과 같은지 확인한다
if (password.equals(password2) == false) {
Snackbar.make(btnRegister,"비밀번호가 일치하지 않습니다.",Snackbar.LENGTH_SHORT).show();
return;
}
// 아바타 액티비티를 띄운다
Intent intent = new Intent(MainActivity.this, AvataActivity.class);
// 인텐트 데이터 다음으로 넘기기
// intent.putExtra("email", email);
startActivity(intent);
// 이메일 주소를 앱 내 저장소에 저장하는 방법
SharedPreferences sp = getSharedPreferences("avata_app",MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.putString("email",email);
editor.commit();
// 백버튼 눌러도 다시 돌아오지 못하게 하기
finish();
}
});
}
}
package com.yujinoh.register;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import com.google.android.material.snackbar.Snackbar;
public class AvataActivity extends AppCompatActivity {
ImageView imgAvata;
Button btnRabbit;
Button btnTurtle;
Button button;
String email;
// 유저가 아바타를 선택하면, 선택한 아바타가 무엇인지 저장하는 용도이다.
// 0 : 아무것도 선택 안한 것이다, 1 : 토끼, 2 : 거북이
int imageType = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_avata);
// 전 인텐트로부터 이메일 받기
// email = getIntent().getStringExtra("email");
imgAvata = findViewById(R.id.imgAvata);
btnRabbit = findViewById(R.id.btnRabbit);
btnTurtle = findViewById(R.id.btnTurtle);
button = findViewById(R.id.button);
btnRabbit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
imgAvata.setImageResource(R.drawable.rabbit);
imageType = 1;
}
});
btnTurtle.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
imgAvata.setImageResource(R.drawable.turtle);
imageType = 2;
}
});
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (imageType == 0) {
Snackbar.make(button, "아바타를 선택하세요.", Snackbar.LENGTH_SHORT).show();
return;
}
// 알러트 다이얼로그를 띄운다.
showAlertDialog();
}
});
}
private void showAlertDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(AvataActivity.this);
builder.setCancelable(false);
builder.setTitle("회원가입 완료");
builder.setMessage("완료하시겠습니까?");
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// Yes 버튼을 눌렀을 때의 처리
Intent intent = new Intent(AvataActivity.this, WelcomeActivity.class);
// 인텐트 데이터 다음으로 넘기기
// intent.putExtra("email", email);
startActivity(intent);
// 백버튼 눌러도 다시 돌아오지 못하게 하기
finish();
}
});
builder.setNegativeButton("No", null);
builder.show();
}
}
package com.yujinoh.register;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
public class WelcomeActivity extends AppCompatActivity {
TextView textWel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_welcome);
textWel = findViewById(R.id.textWel);
// 전 인텐트로부터 이메일 받기
// String email = getIntent().getStringExtra("email");
// 앱 내 저장소에 저장된 이메일 데이터를 가져온다
SharedPreferences sp = getSharedPreferences("avata_app", MODE_PRIVATE);
String email = sp.getString("email","");
textWel.setText(email+"님\n"+"회원가입을 축하합니다");
}
}
'Android' 카테고리의 다른 글
Json (제이슨) 형식의 데이터 파싱하고 어댑터를 사용하기 (0) | 2024.06.10 |
---|---|
네트워크를 통해 데이터를 가져오기 위한 환경 설정, Volley 라이브러리 설치하기 (0) | 2024.06.10 |
두 번째 순서의 인텐트(intent)부터 보여질 때 해결 방법 (0) | 2024.06.07 |
안드로이드 스튜디오 인텐트(Intent) : 두 액티비티 간 데이터 전달하기 (0) | 2024.06.07 |
안드로이드 스튜디오 동일한 어플리케이션(application)이 여러 개 생성되었을 때 해결 방법 (0) | 2024.06.07 |