확장함수 : Toast

Yuree Choi·2022년 6월 13일
0

확장함수 : Toast

https://greedy0110.tistory.com/73 참조하였습니다!

1. 확장함수?

여러 클래스에서 사용되는 showToast와 같은 함수라면 확장함수를 써주는게 좋다!
fun 확장시킬 클래스 타입.함수명(){} 의 형태로 사용한다.

2. Activity 안에서 함수로 빼주기

원래대로라면

Toast.makeText(this, "로그인에 성공하였습니다", Toast.LENGTH_SHORT).show() 

이걸 토스트 메시지 띄우고 싶을 때마다 써야되는데..

fun Context.showToast(msg: String) {
        Toast.makeText(this, msg, Toast.LENGTH_SHORT).show()
    }

이 함수를 넣어주면

showToast("자동로그인 해제되었습니다")

딱 한줄만 쓰면 되게 된다!

3. 다른 Activity에서도 사용하게 해주자

근데 이걸 한 액티비티에서만 쓰는게 아니라, 다른 액티비티에서도 분명히 토스트는 계속해서 쓸거란 말이지...
그럼 따로 함수로 빼주면 되겠다!

ContextUtil.kt 파일을 하나 만들어서

package com.example.a220402.util

import android.content.Context
import android.widget.Toast

fun Context.showToast(msg: String) {
    Toast.makeText(this, msg, Toast.LENGTH_SHORT).show()
}

써주고 토스트는 쓸 때마다

showToast("자동로그인 해제되었습니다")

로 해서 import 해주면 편하게 사용이 가능하다!

번외) Fragment의 경우

근데 이제 액티비티는 되지만 프래그먼트는 context를 상속받지 않음.
그래서 requireContext()라는 메소드로 액티비티에 접근 가능할 때 사용한 메소드 이용 가능!

requireContext().showToast("유리네 벨로그")
profile
마음만은 잔디밭

0개의 댓글