개발

03/26 주특기 1주차 개인과제(4)

sos000303 2024. 3. 26. 20:26
728x90

깃허브 링크

과제 제출일이 얼마 남지 않아 최종적으로 점검했다. 기존 onCreate에 모두 작성해놨던 코드들을 함수를 통해 가독성을 높였다.

//SignInActivity

package com.example.week4_homework

import android.content.Intent
import android.os.Bundle
import android.widget.Button
import android.widget.EditText
import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.app.AppCompatActivity

class SignInActivity : AppCompatActivity() {
	// 함수에서의 사용을 클래스 단위의 변수선언
    private lateinit var loginBtn: Button
    private lateinit var joinBtn: Button
    private lateinit var idET: EditText
    private lateinit var passwordET: EditText
    private lateinit var startForResult: ActivityResultLauncher<Intent>

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_sign_in)

        loginBtn = findViewById(R.id.btn_login)
        joinBtn = findViewById(R.id.btn_join)
        idET = findViewById(R.id.et_id)
        passwordET = findViewById(R.id.et_password)

        startForResult = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
            if (result.resultCode == RESULT_OK) {
                val id = result.data?.getStringExtra("signed_id")
                val password = result.data?.getStringExtra("signed_password")
                idET.setText(id)
                passwordET.setText(password)
            }
        }
	// 함수로 변경
        loginBtn.setOnClickListener { loginBtnClickListener() } 
        joinBtn.setOnClickListener { joinBtnClickListener() }
    }



    private fun joinBtnClickListener() {
        val intent = Intent(this, SignUpActivity::class.java)
        startForResult.launch(intent)
    }

    private fun loginBtnClickListener() {
        if (idET.text.isEmpty() || passwordET.text.isEmpty()) {
            toastFun(this, "아이디/비밀번호를 확인해주세요.")
        } else {
            val intent = Intent(this, HomeActivity::class.java)
            intent.apply {
                putExtra("extra_id", idET.text.toString())
                putExtra("random", getRandomIndex())
            }
            toastFun(this, "로그인 성공")
            startActivity(intent)
        }
    }
}

다만 아직 registerForActivity를 함수화 하는 과정을 모르겠다.

728x90