마지막 페이지인 WelcomeActivity에서 e-mail 정보를 받아오는 방법 1번이다.

포인트는 페이지들의 연결고리인 intent를 이용해서 데이터를 넘겨주고 넘겨주는 것. 징검다리 식. 

 

 

 

MainActivity.java

package com.bpdev.register;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

import com.google.android.material.snackbar.Snackbar;

public class MainActivity extends AppCompatActivity {

    EditText editEmail;
    EditText editPassword1;
    EditText editPassword2;
    Button btnRegister;
    String email;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        editEmail = findViewById(R.id.editEmail);
        editPassword1 = findViewById(R.id.editPassword1);
        editPassword2 = findViewById(R.id.editPassword2);
        btnRegister = findViewById(R.id.btnRegister);

        btnRegister.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                email = editEmail.getText().toString().trim();
                String password1 = editPassword1.getText().toString().trim();
                String password2 = editPassword2.getText().toString().trim();

                // 비었는지 확인하는 스낵바
                if(email.isEmpty() || password1.isEmpty() || password2.isEmpty() ){
                    Snackbar.make(btnRegister, "필수항목을 모두 입력하세요.", Snackbar.LENGTH_SHORT).show();
                    return; // 이 if문 조건이 참이어서 스낵바 실행했다면, 동작을 끝내야 한다.
                }

                // email에 @ 있는지 확인해라
                // !내용. 내용이 false라면. ! 는 true/false 뒤집는 기호.
                if ( email.contains("@") == false ){
                    Snackbar.make(btnRegister, "이메일 형식을 확인하세요.", Snackbar.LENGTH_SHORT).show();
                    return;
                }

                // 비밀번호 길이 확인 || ~거나
                if ( password1.length() < 4 || password1.length() > 12) {
                    Snackbar.make(btnRegister, "비밀번호 길이를 확인하세요.", Snackbar.LENGTH_SHORT).show();
                    return;
                }

                // password1과 password2가 다른 게 true면, if 문을 실행한다.
                if( !password1.equals(password2) ){
                    Snackbar.make(btnRegister, "비밀번호가 서로 다릅니다.", Snackbar.LENGTH_SHORT).show();
                    return;
                }

                // 아바타 선택하는 액티비티를 띄운다.
                Intent intent = new Intent(MainActivity.this, AvatarActivity.class);

                intent.putExtra("email", email);

                startActivity(intent);
                finish();

            }
        });


    }
}

 

 

AvatarActivity.java

package com.bpdev.register;

import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;

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 com.google.android.material.snackbar.Snackbar;

public class AvatarActivity extends AppCompatActivity {

    ImageView imgAvatar;
    Button btnRabbit;
    Button btnTurtle;
    Button btnOk;
    String email;


    boolean isSelected= false; // 이 액티비티가 실행되면 false로 시작함.


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_avatar);

        email = getIntent().getStringExtra("email");


        imgAvatar = findViewById(R.id.imgAvatar);
        btnRabbit = findViewById(R.id.btnRabbit);
        btnTurtle = findViewById(R.id.btnTurtle);
        btnOk = findViewById(R.id.btnOk);

        btnRabbit.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                imgAvatar.setImageResource(R.drawable.rabbit);
                isSelected = true;
            }
        });
        btnTurtle.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                imgAvatar.setImageResource(R.drawable.turtle);
                isSelected = true;
            }
        });
        btnOk.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if ( !isSelected ){
                    Snackbar.make(btnOk,"아바타를 꼭 선택하세요.", Snackbar.LENGTH_SHORT).show();
                    return;
                } // 이상조건을 먼저 감지하고 멈춰버리시오.
                showAlertDialog();
            }
        });
    }


    private void showAlertDialog(){
        AlertDialog.Builder builder = new AlertDialog.Builder(AvatarActivity.this);
        builder.setTitle("회원가입 완료");
        builder.setMessage("완료하시겠습니까?");
        builder.setCancelable(false);
        // Yes 버튼 누르면 동작하라~
        builder.setPositiveButton("YES", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {

                // 새로운 액티비티를 띄운다.
                Intent intent = new Intent(AvatarActivity.this, WelcomeActivity.class);
                intent.putExtra("email", email);


                startActivity(intent);
                // 그리고 닫는다.
                finish();

            }
        });
        builder.setNegativeButton("NO", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                // todo : 앱 종료
                // finish()는 이 액티비티를 종료하는 것
                finish();
            }
        });

        builder.show();
    }

}

 

 

WelcomeActivity.java

package com.bpdev.register;

import androidx.activity.result.ActivityResult;
import androidx.activity.result.ActivityResultCallback;
import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;

public class WelcomeActivity extends AppCompatActivity {

    TextView txtWelcome;
    String email;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_welcome);

        txtWelcome = findViewById(R.id.txtWelcome);

        email = getIntent().getStringExtra("email");

        txtWelcome.setText(email+"님\n 회원가입을 축하합니다.");
    }
}

 

 

 

 

+ Recent posts