엑티비티를 추가로 만들어준다.
엑티비티를 만들면 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 : 정상적으로 수행됬을경우 ~~~ 한다.
}
}
'Android' 카테고리의 다른 글
[Android] 이메일 유효성 검사하는 Pattern 코드 (0) | 2022.07.13 |
---|---|
[Android] TODO 활용 (0) | 2022.07.13 |
[Android] onBackPressed와 Alert Dialog(알림창) (0) | 2022.07.12 |
[Android] 타이머 앱: Extract Resource, CountDownTimer (0) | 2022.07.12 |
[Android] 문자열인지 아닌지 확인하는 코드 (0) | 2022.07.12 |
댓글