안드로이드 개발자의 창고
[37일차 Android] Toast 본문
출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT
📖 Toast
- 안드로이드에서 간단하게 메시지를 표시할 때 사용한다.
- 화면과 관련 없이 안드로이드 OS에게 메시지 출력을 요청하고 안드로이드 OS에 의해 나타나는 메시지이다.
- 단말기내의 모든 애플리케이션, 모든 구성 요소가 요청할 수 있으며 애플리케이션에 관계 없이 요청된 순서대로 메시지가 나타난다.
주요 메서드
메서드 | 설명 |
makeText | Toast 메시지 객체를 만든다. 화면 모양, 글자 크기 및 색상 등은 기본 설정되어 있는 것을 사용 |
setGravity | Toast 메시지가 표시될 위치를 설정 |
setView | Toast 메시지를 통해 보여줄 View를 설정, 이를 이용해 커스터마이징이 가능 |
setDuration | 메시지가 표시된 시간을 설정 |
CallBack
- 안드로이드 11 (API 30) 부터 Toast 에 Callback을 설정할 수 있다.
- onToastHidden : Toast 메시지가 사라질 때 호출
- onToastShown : Toast 메시지가 나타날 때 호출
예제 코드
버튼 클릭 시 일반 Toast가 나타나도록 구현
button.run {
setOnClickListener {
// Toast 객체를 생성한다.
val t1 = Toast.makeText(this@MainActivity,"기본 Toast", Toast.LENGTH_SHORT)
// 메세지가 사라질 때 동작할 코드가 있다면
// Android 11 버전 부터 가능
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.R){
t1.addCallback(object : Toast.Callback(){
override fun onToastShown() {
super.onToastShown()
textView.text = "기본 Toast 메시지가 나타났습니다"
}
override fun onToastHidden() {
super.onToastHidden()
textView.text = "기본 Toast 메시지가 사라졌습니다"
}
})
}
t1.show()
}
}
- Toast.makeText()
- context, text, 유지 시간 등을 작성한다.
- Toast의 callBack은 안드로이드 버전 11 이상부터 가능하기 때문에 if문을 사용하여 SDK 버전을 확인한다.
- onToastShown() : Toast가 나타났을 때 실행되는 함수
- onToastHidden() : Toast가 사라졌을 때 실행되는 함수
커스텀 Toast - toast.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/imageViewToast"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:srcCompat="@mipmap/ic_launcher" />
<TextView
android:id="@+id/textViewToast"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TextView"
android:textAlignment="center"
android:textAppearance="@style/TextAppearance.AppCompat.Large" />
</LinearLayout>
커스텀 Toast - button 클릭 시 나타나도록 구현
button2.run {
setOnClickListener {
// ViewBinding 객체를 생성한다.
val toastBinding = ToastBinding.inflate(layoutInflater)
toastBinding.run {
imageViewToast.setImageResource(R.drawable.img_android)
textViewToast.text = "Custom Toast 입니다"
val t2 = Toast(this@MainActivity)
// View를 설정한다.
t2.view = toastBinding.root
// 배경
toastBinding.root.setBackgroundResource(
android.R.drawable.screen_background_dark
)
// textView 글자 색상
textViewToast.setTextColor(Color.WHITE)
// 위치 설정
t2.setGravity(Gravity.CENTER,0,300)
// 시간 설정
t2.duration = Toast.LENGTH_LONG
t2.show()
}
}
}
- 커스텀 Toast를 만들기 위해 ViewBinding 객체를 생성한다.
- ViewBinding 객체를 통해 run{ ... } 내부에 커스텀 내용을 작성한다.
결과
일반 Toast
커스텀 Toast
'Computer > Android' 카테고리의 다른 글
[37일차 Android] Dialog (1) | 2023.06.23 |
---|---|
[37일차 Android] SnackBar (0) | 2023.06.23 |
[37일차 Android] 다른 앱의 Activity 실행하기 (0) | 2023.06.23 |
[34일차 Android] OnActivityResult (0) | 2023.06.23 |
[34일차 Android] Activity 실행하기 (0) | 2023.06.17 |