https://greedy0110.tistory.com/73 참조하였습니다!
여러 클래스에서 사용되는 showToast와 같은 함수라면 확장함수를 써주는게 좋다!
fun 확장시킬 클래스 타입.함수명(){}
의 형태로 사용한다.
원래대로라면
Toast.makeText(this, "로그인에 성공하였습니다", Toast.LENGTH_SHORT).show()
이걸 토스트 메시지 띄우고 싶을 때마다 써야되는데..
fun Context.showToast(msg: String) {
Toast.makeText(this, msg, Toast.LENGTH_SHORT).show()
}
이 함수를 넣어주면
showToast("자동로그인 해제되었습니다")
딱 한줄만 쓰면 되게 된다!
근데 이걸 한 액티비티에서만 쓰는게 아니라, 다른 액티비티에서도 분명히 토스트는 계속해서 쓸거란 말이지...
그럼 따로 함수로 빼주면 되겠다!
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 해주면 편하게 사용이 가능하다!
근데 이제 액티비티는 되지만 프래그먼트는 context를 상속받지 않음.
그래서 requireContext()라는 메소드로 액티비티에 접근 가능할 때 사용한 메소드 이용 가능!
requireContext().showToast("유리네 벨로그")