티스토리 뷰
View 클래스들을 확장해서 정의할때
생성자 3개인가 다 정의해줘야 되서 구찮았는데 (os버전따라 4개인경우도)
kotlin에선 간단히 한줄로
class CustomTextView @JvmOverloads constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int = 0)
: TextView(context, attrs, defStyleAttr)
하지만 저렇게 정의하면 xml에서 정의한 style이 안먹는다네?
그래서 style이 먹어줘야하는 view들은 결국 3개다 정의 ㅋ
class CustemTextView : TextView {
constructor(context: Context) : super(context)
constructor(context: Context, attrs: AttributeSet?) : super(context, attrs)
constructor(context: Context, attrs: AttributeSet?, defStyle: Int = 0) : super(context, attrs, defStyle)
}
참고로 @JvmOverloads
/**
* Instructs the Kotlin compiler to generate overloads for this function that substitute default parameter values.
*
* If a method has N parameters and M of which have default values, M overloads are generated: the first one
* takes N-1 parameters (all but the last one that takes a default value), the second takes N-2 parameters, and so on.
*/
@Target(AnnotationTarget.FUNCTION, AnnotationTarget.CONSTRUCTOR)
@Retention(AnnotationRetention.BINARY)
@MustBeDocumented
public actual annotation class JvmOverloads
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 사진
- 책
- 에픽하이
- Mac
- Java
- 여행
- Linux
- 잡담
- 야마다 타카유키
- 일본
- 음악
- 공연
- 아사가야
- 진해
- 도쿄
- android
- postcrossing
- 신주쿠
- 인디
- 영화
- epik high
- 락
- 서울숲별밤축제
- 일기
- 드라마
- 노래
- 코이데 케이스케
- 안드로이드
- 포스트크로싱
- 일어일기
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
글 보관함