티스토리 뷰

Android App Coding

토스트 메시지 Toast

IT Knowledge Share 2021. 7. 9. 14:09
반응형

앞전에 실습한 리스트뷰에 리스너를 장착하는 방법과 토스트 메시지를 띄우는 방법에 대해 공부합니다.

 

다음의 액티비티 파일은 어댑터를 이용해 리스트뷰를 보여주는 것입니다.

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
댓글