header-img
Info :
  1. 'CS > Android, Kotlin' 카테고리의 다른 글

백업용도로 작성

import android.os.Bundle
import androidx.annotation.LayoutRes
import androidx.appcompat.app.AppCompatActivity
import androidx.databinding.DataBindingUtil
import androidx.databinding.ViewDataBinding
import androidx.lifecycle.ViewModel
abstract class BaseActivity<VD: ViewDataBinding>(@LayoutRes val layoutRes: Int) : AppCompatActivity() {
/*@LayoutRes
abstract fun getLayoutRes(): Int*/
abstract val viewModel: ViewModel
val binding by lazy {
DataBindingUtil.setContentView(this, layoutRes) as VD
}
/*val itemDao by lazy {
AppDatabase.getDatabase(this).itemDao()
}*/
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding
initViewModel(viewModel)
onCreateAction()
}
abstract fun initViewModel(viewModel: ViewModel)
abstract fun onCreateAction()
}
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.annotation.LayoutRes
import androidx.databinding.DataBindingUtil
import androidx.databinding.ViewDataBinding
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModel
abstract class BaseFragment<T: ViewDataBinding>(@LayoutRes val layoutRes: Int)
: Fragment() {
lateinit var binding: T
abstract val viewModel: ViewModel
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = DataBindingUtil.inflate(inflater, layoutRes, container, false)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
binding.lifecycleOwner = this@BaseFragment
initView()
super.onViewCreated(view, savedInstanceState)
}
abstract fun initView()
}

'CS > Android, Kotlin' 카테고리의 다른 글

[Android] BottomNavigationView Custom  (1) 2023.12.03
[Android] Hilt  (0) 2023.05.09
[Android] OKHttp3를 사용한 헤더 추가, Retrofit2를 사용한 http 통신  (0) 2023.04.16
[Android] Custom View  (0) 2023.04.15
[Android] Data Binding  (0) 2023.04.15
더보기
CS/Android, Kotlin