자기소개 앱 만들기

Level 1(230801)

**② ~ ④ :** activity_signin.xml
linear layout or constraint layout 사용하여 UI 디자인
(웬만하면 constraint layout 쓰기)

* 빼먹지 말아야 할 점
linear layout : android:orientation="vertical" or horizontal 넣어주기
constraint layout : 위젯 간 관계 설정하기

EditText 위젯에 미리보기 글씨 넣기 : android:hint="@string/signup_hintId"
⑤ **~ ⑨ :SigninActivity
-** 최상단에 불러올 위젯들 변수 선언 & lateinit으로 초기화
- onCreate 메소드 안에 최상단에서 선언한 변수들 값 넣기(findViewById)
- 버튼 클릭 시 실행 될 구문 지정 : setOnClickListener 메소드 사용
예 : 로그인 버튼의 경우 아이디, 비밀번호 중 값이 비어있는 경우와 비어있지 않은 경우 if 구문으로 나눠서 작성
메소드 내 상단에 var isExistBlank:Boolean = false로 불리안 변수 하나 생성하여 값이 비어있으면 true로 바꿔주기
비어있지 않으면 Intent 클래스(intent 변수 선언)로 HomeActivity로 이동 & intent.putExtra로 로그인 화면에서 기입된 id 전달
Toast.makeText로 토스트 메시지 출력
-> 근데 Toast.makeText(this - **이 부분에 context로 받는 경우는 뭐지?**)

Level 2(230801)

① ~ ④ 상동
⑤ : activity_sign_up.xml
- EditText 위젯 안에 android:inputType="textPassword"
⑥ SignUpActivity
- intent  실행 밑에 finish() 추가

Level 3(230802

①, ③, ④ 상동
② HomeActivity
- intent.getStringExtra()로 SigninActivity에 기입한 아이디 가져오기

Level 4

SignUpActivity
- intent 변수 밑에 intent.PutExtra()로 기입된 id, pw 넣기
- setResult(RESULT_OK, intent) 추가 -> RESULT_OK : 성공적으로 수행되었을 경우, intent를 반환해라

**SigninActivity**
- class 최상단에 var launcher: ActivityResultLauncher<Intent> 변수 선언 
- setResultNext 함수 선언
- 위 함수 내 아래 코드 기입
launcher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
	if (result.resultCode == RESULT_OK && result.data != null) {
	  val id = result.data?.getStringExtra("id") ?: ""
		val pw = result.data?.getStringExtra("pw") ?: ""
    editID.setText(id)
    editPW.setText(pw)
activity_home.xml
- ImageView 위젯 안에 app:srcCompat="@drawable/이미지이름" />
HomeActivity
- 표시할 이미지들 array 변수로 담아주기
val imageArray = arrayOf(R.drawable.이미지명,R.drawable.이미지명..)
- 아래 코드로 랜덤 이미지 표시하기
val randomImageResource = imageArray[Random.nextInt(imageArray.size)]
val imageHome = findViewById<ImageView>(R.id.imageHome)
imageHome.setImageResource(randomImageResource)
activity_home.xml
- android.widget.Button 위젯 생성(그냥 Button 위젯은 버튼 색깔 기본 색상에서 안바뀜)
- selector_btn.xml 생성(drawable 패키지 안!)
<item android:state_pressed="true"> or false일 때 버튼 color, shape, radius 설정
마찬가지로 이모지 selector, 텍스트 색상 selector 생성하여 activity_home.xml에 적용
* 튜터님은 layout으로 버튼, 텍스트, 이모지를 배치하여 selector 한번에 먹인 것 같음

<aside> 💡 도움 받은 자료

</aside>