티스토리 뷰
반응형
앞전에 실습한 리스트뷰에 리스너를 장착하는 방법과 토스트 메시지를 띄우는 방법에 대해 공부합니다.
다음의 액티비티 파일은 어댑터를 이용해 리스트뷰를 보여주는 것입니다.
class ListviewActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_listview)
val waitingList = ArrayList<WaitForList>()
for (i in 0 until 10){
waitingList.add(WaitForList("" + i + "번째 손님", "" + i + "번째 대기번호"))
}
//어댑터 생성 및 활용
val adapter = ListViewAdapter(waitingList, LayoutInflater.from(this@ListviewActivity))
listView.adapter = adapter
//리스너 장착하기
listView.setOnItemClickListener { parent, view, position, id ->
val guestName = (adapter.getItem(position) as WaitForList).guest_number
val waitNumber = (adapter.getItem(position) as WaitForList).waiting_number
//토스트 메시지 띄우기
Toast.makeText(this@ListviewActivity, guestName + "" + waitNumber,
Toast.LENGTH_SHORT).show()
}
}
}
이제 리스트뷰에 리스너를 장착해 봅니다.
반응형
listView.setOnItemClickListener { parent, view, position, id ->
val guestName = (adapter.getItem(position) as WaitForList).guest_number
val waitNumber = (adapter.getItem(position) as WaitForList).waiting_number
}
위의 코드처럼, 리스트뷰에서 리스너를 장착할 때, setOnItemClickListener를 사용합니다. 이를 사용하면, 클릭시 parent(부모), view(해당 뷰), position(어댑터 위치), id(어댑터 아이디)가 넘어가게 됩니다.
guestName과 waitNumber에 position을 통해 아이템을 넣어주고, 이는 원래 어댑터의 getItem에서 Any타입이었으므로, WaitForList로 캐스팅하였습니다. 이렇게 guest_number, waiting_number에 해당하는 뷰를 가져옵니다.
이제 가져온 뷰를 토스트 메시지로 보여주는 코드를 살펴봅니다.
Toast.makeText(this@ListviewActivity, guestName + "" + waitNumber, Toast.LENGTH_SHORT).show()
토스트 메시지는 말풍선처럼 원하는 내용을 띄워서 보여주는 역할을 합니다. 위의 코드처럼, Toast 지시어를 이용한 뒤, makeText 함수를 사용합니다. 첫 번째 인자로는 context(this), 두 번째 인자로는 보여주게 될 뷰나 메시지, 마지막 인자로는 보여주는 시간입니다. Toast.LENGTH_SHORT는 약 2초, Toast.LENGTH_LONG은 약 3.5초 동안 메시지를 보여줍니다.
마지막으로 show( ) 메소드를 사용해야만 토스트 메시지가 나타나게 됩니다.
반응형
'Android App Coding' 카테고리의 다른 글
리사이클러뷰 RecyclerView (0) | 2021.07.09 |
---|---|
뷰 홀더 View Holder (0) | 2021.07.09 |
리스트뷰와 어댑터 ListView & Adapter (0) | 2021.07.09 |
애드뷰 Addview (0) | 2021.07.09 |
라이브러리 사용하기 Library (0) | 2021.07.09 |
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- lazy init
- 리스트뷰
- 메소드 오버라이딩
- 대한민국 미제사건
- 2007년 사건사고
- 2021년 사건사고
- Bmi Calculator
- 안드로이드 앱 만들기
- view binding
- 리사이클러뷰
- 인텐트
- 안드로이드 프로젝트
- notifyDataSetChanged
- 뷰 바인딩
- ToDo List 앱 만들기
- 자바스크립트 배열
- 선형 레이아웃
- RecyclerView
- findViewById
- android adapter
- bmi 계산기 만들기
- 탭레이아웃
- 2019년 사건사고
- 안드로이드 스튜디오 에러
- 미제사건
- addView
- tabLayout
- 애드뷰
- 상대적 레이아웃
- 안드로이드 어댑터
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함