코틀린(Kotlin)/TIL

[코틀린(Kotlin)] Intent, findViewById

초보왕보초 2023. 12. 11. 20:07
728x90
  • Intent
  • findViewById

 

 

Intent의 활용

- 액티비티 간 화면 전환 및 데이터를 전달하는 기능

 

Intent를 활용해서 간단한 기능의 버튼 만들기

  • xml 파일에서 버튼을 두 개 만들어준다
  • 한 개는 단순히 네이버로 연결, 다른 한 개는 통화버튼

 

 

변수(myIntent)를 선언해 주고 암시적 인텐트?를 사용해서 Uri.parse()를 이용해서 네이버 홈페이지 주소를 적어준다

startActivity(변수)로 전환할 액티비티를 호출한다

 

*암시적 인텐트로는 웹 브라우저 열기, 전화 걸기, 구글 맵 열기, 메시지 보내기, 카메라 기능 등이 있다고 한다

 

 

onButton1Clicked 결과(네이버 홈페이지)

 

 

onButton2Clicked 결과(010-1234-5678 통화)

 

 

 

이 외에도 많은 기능이 있지만 대표적으로는 액티비티 간의 화면전환과 putExtra() 메서드를 통해 데이터를 Intent에 포함하여 전달이 가능하다

 

 

 

findViewById의 활용

- xml에서 만든 뷰에 id를 부여해서 받아와 코드에서 사용할 수 있게 해주는 메서드

 

findViewById를 활용해서 간단한 주사위 기능 버튼 만들기

  • 숫자 결과가 나올 TextView를 생성해 준다
  • 주사위를 굴리는 기능의 버튼을 생성해 준다
  • 각각의 뷰에 id를 부여해 준다

 

 

  • findViewById<타입>(R.id.뷰에서 지어준 id)를 이용해 변수를 생성해 준다
  • btn_dice(= findViewById를 이용해 뷰에서 만든 Button 호출)에 setOnClickListener{}를 이용해 클릭했을 때, tv_num(=findViewById를 이용해 뷰에서 만든 TextView 호출)에 1~6까지의 숫자를 랜덤으로 나오게 한다
  • 24) Logcat을 보기 위해서 만든 로그

 

 

에뮬레이터 결과

 

 

Logcat 결과

 

 

 

되게 좋은 기능 같아 보이지만, 느리고 null-safe 하지 못한다는 단점을 가진다고 한다

→ 그래서 빠르고 안전한 ViewBinding을 사용한다고 한다

728x90