코린이 탈출기
chapter 6.6 - 리스트뷰의 부가 기능 (1) - 이벤트 처리 - setOnItemClickListener 본문
chapter 6.6 - 리스트뷰의 부가 기능 (1) - 이벤트 처리 - setOnItemClickListener
50HEE 2021. 5. 11. 20:56리스트뷰의 이벤트 처리에 대해 다룰 것인데, 이전에 코딩하였던 자료를 참고로 사용하여 설명하겠습니다.
보통 이렇게 목록을 작성을 하는 이유는 각각의 줄을 눌러서 상세화면으로 들어가기 위한 길목 같은 역할을 해주기 위해서입니다.
즉, 어떤 줄을 눌렀는가에 대해 매우 중요한 의미를 가집니다.
기존에 다룬 내용에는 버튼을 눌렀을 경우의 이벤트 처리로 'setOnClickListener'이 있었습니다.
이번에는 리스트뷰의 각 줄을 눌렀을 경우의 이벤트 처리인 'setOnItemClickListener'입니다.
각 줄을 눌렀을 때 어떤 줄을 눌렀는지를 파악하면서 실행되는 함수입니다.
코드를 작성하는 곳은 MainActivity.kt입니다.

리스트뷰를 눌렀을 경우 실행하는 것을 setOnItemClickListener입니다.
자동완성을 누르면 38번 줄과 같이 작성됩니다. 안에 작성된 코드는 신경 쓰지 말고 다음 코드를 작성하겠습니다.
작성할 코드는 어떤 줄을 눌렀을 경우 그 줄이 눌렸다는 것을 토스트로 띄워보겠습니다.
눌린 사람의 위치를 알기 위해서 변수로 저장하겠습니다. 그러기 위해서는 어떤 리스트에 어떤 위치인 것인가를 설정해주어야합니다. 40번 줄과 같습니다.
val 변수 명 = 원하는 리스트[원하는 위치]
이제 토스트를 띄울 차례입니다. 토스트의 경우 전에 다루었던 글을 참고해주시기 바랍니다. 42번 줄과 같습니다.
2021.04.21 - [안드로이드/클래스101 - 비전공자들을 위한 나만의 안드로이드 앱 만들기] - chapter 3.2 - 기초 이벤트 처리, 로그, 토스트 활용하기
Toast.makeText(원하는 화면, "띄워줄 문구", Toast.LENGTH_SHORT).show( )
코드를 작성하는 곳은 MainActivity.kt입니다.

리스트뷰를 길게 눌렀을 경우 실행하는 것인 setOnItemLongClickListener입니다.
자동완성을 누르면 46번 줄과 같이 작성됩니다. 안에 작성된 코드는 신경 쓰지 말고 다음 코드를 작성하겠습니다.
작성할 코드는 어떤 줄을 눌렀을 경우 그 줄이 눌렸다는 것을 토스트로 띄워보겠습니다.
눌린 사람의 위치를 알기 위해서 변수로 저장하겠습니다. 그러기 위해서는 어떤 리스트에 어떤 위치인 것인가를 설정해주어야합니다. 49번 줄과 같습니다.
val 변수 명 = 원하는 리스트[원하는 위치]
이제 토스트를 띄울 차례입니다. 토스트의 경우 전에 다루었던 글을 참고해주시기 바랍니다. 52번 줄과 같습니다.
2021.04.21 - [안드로이드/클래스101 - 비전공자들을 위한 나만의 안드로이드 앱 만들기] - chapter 3.2 - 기초 이벤트 처리, 로그, 토스트 활용하기
Toast.makeText(원하는 화면, "띄워줄 문구", Toast.LENGTH_SHORT).show( )
여기까지만 작성하였다면 에러가 발생할 것입니다. 이 코드의 경우는 return 구문을 작성해야 하기 때문입니다.
return을 자동완성을 하면 55번 줄과 같이 return 뒤에 @set~ 이라고 작성되어있습니다.
즉, 이 기능의 결과로 무엇을 줄 것인지를 작성해야 합니다. 이때 true 또는 false를 작성할 수 있습니다.
true의 경우에는 길게 눌렀을 경우 52번 줄과 같은 구문으로 토스트가 띄워집니다.
반면 false의 경우에는 길게 누르고 있는 동안에는 52번 줄과 같은 구문으로 토스트로 띄워지지만 누르고 있던 손을 떼면 위에서 작성했던 42번 줄과 같은 구문이 토스트로 띄워집니다.
좀 더 쉽게 설명하자만 true의 경우에는 LongClick 전용으로 설정하였다고 보고, false는 LongClick 전용이 아니고 짧게 누른 click도 같이 실행시켜달라고 생각하시면 됩니다.
'인터넷 강의 > 클래스101 - 비전공자들을 위한 나만의 안드로이드 앱 만들기' 카테고리의 다른 글
| chapter 6.8 - 리스트뷰의 재사용성에 대한 이해 (0) | 2021.05.12 |
|---|---|
| chapter 6.7 - 리스트뷰의 부가 기능 (2) - 내용물 변경 사항 반영하기 (0) | 2021.05.11 |
| chapter 6.5 - 리스트뷰 만들기 (4) - 실제 데이터 리스트뷰에 반영하기 - getView 함수 수정 (0) | 2021.05.11 |
| chapter 6.4 - 리스트뷰 만들기 (3) - ArrayList 이용, 실제 목록 추가, 어댑터-리스트뷰 연결 (0) | 2021.05.11 |
| chapter 6.3 - 리스트뷰 만들기 (2) - Adapter 클래스 뼈대 작업 (0) | 2021.05.10 |