일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- zeplin
- #ContentProvider #App DataShare
- 메모리릭
- 레트로핏
- #리사이클러뷰 어댑터
- 빗버킷 #bitbucket #authorization failed #깃
- 키스토어
- retrofi
- retrofit
- 클린아키텍쳐
- retrofit2
- #안드로이드
- 제플린
- MVVM
- 안드로이드해상도
- 안드로이드 아키텍쳐
- #리사이클러뷰
- 구글맵안돼요
- 안드로이드 익명클래스
- 리사이클러뷰 체크박스
- #android #안드로이드 #glide #gif #이미지다운로드
- 안드로이드
- 사용법
- #SMS API #안드로이드 SMS #SMS Retriever
- 안드로이드 메모리릭
- #안드로이드 개발자 #안드로이드 신입 #개발자 이직 #안드로이드 면접 #신입 개발자
Archives
- Today
- Total
땀이 삐질삐질 나는 개발 일기
BaseActivity 만들기 with DataBinding,ViewModel (Kotlin) 본문
안녕하세요 개발자 삐질입니다.
이번 글에서는 DataBinding을 사용하여 BaseActivity를 손쉽게 재사용 하는 방법에 대해 알아보겠습니다.
1. BaseActicity
- layout Res와 Generic 타입을 정의해서 Child Activity를 깔끔하게 관리하기
abstract class BaseActivity<T : ViewDataBinding>(private val layoutId:Int): AppCompatActivity(){
lateinit var compositable: CompositeDisposable
lateinit var binding: T
lateinit var lExcaptionMsg : Observer<Int>
lateinit var lMsg: Observer<String>
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
compositable = CompositeDisposable()
binding = DataBindingUtil.inflate(layoutInflater,layoutId,null,false)
setContentView(binding.root)
binding.lifecycleOwner=this
}
abstract fun setObserver()
override fun onDestroy() {
super.onDestroy()
compositable.clear()
}
}
2. 상속받을 Activity
class MainActivity : BaseActivity<ActivityMainBinding>(R.layout.activity_main) {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
init()
}
fun init(){
setFragment(TipFragment.newInstance())
}
override fun setObserver() {
}
fun setFragment(fragment: Fragment){
var fragmentManager = supportFragmentManager
var tr = fragmentManager.beginTransaction()
tr.replace(binding.container.id,fragment,fragment.javaClass.simpleName)
tr.commit()
}
}
초급 안드로이드 개발자를 위한 카카오톡 오픈 채팅방을 운영 중 입니다.
(저는 마냥 친절한 방장은 아닙니다. 다만, 다 같이 성장하고 싶은 방장이며 개발자 입니다)
'개발 Tip' 카테고리의 다른 글
[안드로이드] Debug, Release, Google Signing ...Keystore? 뭐하는 녀석이지? (0) | 2020.02.12 |
---|---|
안드로이드 리사이클러뷰 속에서 체크박스 처리 하기 (2) | 2020.02.05 |
다중 프로젝트가 의존하는 Module Path를 각 개발 환경에서 자동화 하기 (0) | 2019.11.07 |
Glide 4.x 버전 이상에서 Gif 및 이미지 다운받아 파일로 저장 (2) | 2019.10.22 |
Android Alarm Manager 반복 설정 시 생길 수 있는 문제 (1) | 2019.08.01 |
Comments