본문 바로가기
Android

[Android] 엑티비티(Activity): Intent

by eyoo 2022. 7. 13.

엑티비티를 추가로 만들어준다.

 

 


엑티비티를 만들면 res의 layout에 해당 엑티비티의 레이아웃도 만들어진다.

 

 

 

메인으로 가서 버튼을 누르면 두번째 엑티비티를 실행시키도록 하자.

 

Button button = findViewById(R.id.button);
// 버튼을 누르면 다른 엑티비티가 화면에 나오도록 한다.
button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        Intent intent = new Intent(MainActivity.this,SecondActivity.class); // 메모리 등록

        startActivity(intent);  // 실행

    }
});

# 세컨드는 메모리에 안만들어져있으니 class로 만들어서 intent 한다.
# startActivity로 만들어진 intent 를 실행하도록 한다.

# 첫번째 엑티비티에서 두번째 엑티비티 실행하면 첫번째 엑티비티가 쌓여있는 상태로 두번째 엑티비티가 실행된다.

 

 

만약 새로운 엑티비티를 실행시키고 나서 원래 있던 회원가입과 같은 엑티비티를 쌓아놓을 필요가 없으면 finish를 사용하여 종료한다.

 

                    Intent intent = new Intent(SignupActivity.this, AvartaActivity.class);
                    startActivity(intent);

                    // 이 엑티비티는 위의 새로운 엑티비티를 실행시키고 나서 없어진다.
                    finish();

 

 

더보기

 

사용한 앱: 

# 회원가입하고 아바타 고르는 앱

 

메인 엑티비티

 

public class MainActivity extends AppCompatActivity {
    EditText editEmail;
    EditText editPassword;
    EditText editValidPassword;
    Button btnSignup;

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

        editEmail = findViewById(R.id.editEmail);
        editPassword = findViewById(R.id.editPassword);
        editValidPassword = findViewById(R.id.editValidPassword);
        btnSignup = findViewById(R.id.btnSignup);

        btnSignup.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                String email = editEmail.getText().toString().trim();
                String password = editPassword.getText().toString().trim();
                String validPassword = editValidPassword.getText().toString().trim();
                
                // Pattern으로 이메일 유효성 검사
                Pattern pattern = android.util.Patterns.EMAIL_ADDRESS;

                if (email.isEmpty() || !pattern.matcher(email).matches()){
                    Toast.makeText(MainActivity.this, "이메일을 올바르게 입력하세요", Toast.LENGTH_SHORT).show();
                } else if (password.length() < 6 || password.length() > 12) {
                    Toast.makeText(MainActivity.this, "비밀번호는 6자리 이상 12자리 이하", Toast.LENGTH_SHORT).show();
                } else if (!validPassword.equals(password)) {
                    Toast.makeText(MainActivity.this, "비밀번호가 일치하지 않습니다.", Toast.LENGTH_SHORT).show();
                } else {
                    Intent intent = new Intent(MainActivity.this, AvartaActivity.class);
                    startActivity(intent);
                    
                    finish();
                }


            }
        });
    }
}

 

 

아바타 엑티비티

 

public class AvartaActivity extends AppCompatActivity {

    ImageView imgAvarta;
    Button btnRabbit;
    Button btnTurtle;
    Button btnAvartaSelect;
    boolean selected = false;


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

        imgAvarta = findViewById(R.id.imgAvarta);
        btnRabbit = findViewById(R.id.btnRabbit);
        btnTurtle = findViewById(R.id.btnTurtle);
        btnAvartaSelect = findViewById(R.id.btnAvartaSelect);

        btnRabbit.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                imgAvarta.setImageResource(R.drawable.rabbit);
                selected = true;
            }
        });

        btnTurtle.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                imgAvarta.setImageResource(R.drawable.turtle);
                selected = true;
            }
        });

        btnAvartaSelect.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (selected == true){
                    AlertDialog.Builder alert = new AlertDialog.Builder(AvartaActivity.this);
                    alert.setTitle("회원가입을 완료하시겠습니까?");
                    alert.setPositiveButton("네", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialogInterface, int i) {
                            Intent intent = new Intent(AvartaActivity.this, SucceedActivity.class);
                            startActivity(intent);
                            finish();
                        }
                    });
                    alert.setNegativeButton("아니요", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialogInterface, int i) {
                            finish();
                        }
                    });
                    alert.show();


                } else {
                    Toast.makeText(AvartaActivity.this, "아바타를 선택하세요", Toast.LENGTH_SHORT).show();
                }
            }
        });

    }
}

 

 

석시드 엑티비티

 

package com.eyoo.multiapp;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

public class SucceedActivity extends AppCompatActivity {

    @Override
    public void onBackPressed() {
        finishAffinity();
    }

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

        // TODO : 정상적으로 수행됬을경우 ~~~ 한다.

    }
}

 

 

 

 

 

 

댓글