▶️ xml파일의 EditText의 입력 내용이 가려지게 하기(비밀번호)
android:inputType="textPassword"
▶️ 버튼이 눌렸을 때의 처리
btn_login.setOnClickListener {
if (et_id.text.toString().trim().isEmpty()) {
Toast.makeText(this, "아이디를 확인해 주세요.", Toast.LENGTH_SHORT).show()
return@setOnClickListener
}
else if (et_pw.text.toString().trim().isEmpty()) {
Toast.makeText(this, "비밀번호를 확인해 주세요.", Toast.LENGTH_SHORT).show()
return@setOnClickListener
}
Toast.makeText(this, "로그인 성공", Toast.LENGTH_SHORT).show()
val intent = Intent(this, HomeActivity::class.java)
intent.putExtra("dataFromSignInActivity", et_id.text.toString())
startActivity(intent)
}
when {
et_id.text.toString().trim().isEmpty() -> {
Toast.makeText(this, "아이디를 확인해 주세요.", Toast.LENGTH_SHORT).show()
}
et_pw.text.toString().trim().isEmpty() -> {
Toast.makeText(this, "비밀번호를 확인해 주세요.", Toast.LENGTH_SHORT).show()
}
else -> {
Toast.makeText(this, "로그인 성공", Toast.LENGTH_SHORT).show()
val strData = et_id.text.toString()
val intent = Intent(this, HomeActivity::class.java)
intent.putExtra("dataFromSignInActivity", strData)
startActivity(intent)
}
▶️ res -> values -> strings.xml 파일에 string값 정의하고 불러오기
<resources>
<string name="app_name">Introduce</string>
<string name="toast_msg_idErr">아이디를 확인해 주세요.</string>
<string name="toast_msg_pwErr">비밀번호를 확인해 주세요.</string>
<string name="login_success">로그인 성공</string>
</resources>
btn_login.setOnClickListener {
if (et_id.text.toString().trim().isEmpty()) {
Toast.makeText(this, getString(R.string.toast_msg_idErr), Toast.LENGTH_SHORT).show()
return@setOnClickListener
}
else if (et_pw.text.toString().trim().isEmpty()) {
Toast.makeText(this, getString(R.string.toast_msg_pwErr), Toast.LENGTH_SHORT).show()
return@setOnClickListener
}
Toast.makeText(this, getString(R.string.login_success), Toast.LENGTH_SHORT).show()
val intent = Intent(this, HomeActivity::class.java)
intent.putExtra("dataFromSignInActivity", et_id.text.toString())
startActivity(intent)
💡 정리
- EditText의 텍스트를 꺼내올 땐 무조건 toString()으로 형변환을 시켜줘야 한다. (Int 값을 받아오려면 toString() 뒤에 toInt()를 써주자.)
- trim()은 사용자가 공백을 줬을 때 공백 제거하는 명령어
- isEmpty()는 비어있는지 체크하는 명령어. null로 체크하면 안된다. null은 비어있는지 체크하는 것이 아니라, 객체 자체가 null이냐는 것이기 때문이다.
- if (et_id.text.toString() == "" || et_pw.text.toString() == "")로도 체크 가능하지만 ""부분에 null을 주면 안된다.
- Toast에 makeText() 명령어로 Toast를 띄운다. 여기에 3가지 인자가 들어간다. (context, text, 토스트 길이)
- context는 토스트를 띄울 바탕을 써준다. 작업하는 현재 activity에 띄울 때는 this를 써준다.
- text 부분에는 ""로 string 값을 직접 쓰기도 하지만, 보통 res -> values -> string.xml 파일에 stiring을 정의해놓고 그 id를 가지고 문구를 불러오는 방식을 많이 쓴다. getString() 명령어로 정의해 준 string을 id로 가져온다.