Skip to content

Commit ac9a0d5

Browse files
fragment
1 parent 7e39dbd commit ac9a0d5

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package com.aranandroid.mvvm.base.v
2+
3+
4+
import androidx.appcompat.app.AppCompatActivity
5+
import androidx.databinding.DataBindingUtil
6+
import androidx.fragment.app.FragmentActivity
7+
import androidx.lifecycle.ViewModelProviders
8+
import com.aranandroid.mvvm.base.vm.BaseViewModel
9+
import java.lang.reflect.ParameterizedType
10+
import java.lang.reflect.Type
11+
12+
13+
open class BaseFragmentActivity<VM : BaseViewModel,ViewDataBinding : androidx.databinding.ViewDataBinding?>(
14+
layoutId: Int
15+
) : FragmentActivity() {
16+
val viewModel by lazy {
17+
ViewModelProviders.of(this)
18+
.get(getClass() as Class<VM>)
19+
}
20+
21+
val binding by lazy {
22+
DataBindingUtil.setContentView<ViewDataBinding>(
23+
this,
24+
layoutId
25+
)
26+
}
27+
28+
fun getClass(): Type? {
29+
return (javaClass.genericSuperclass as ParameterizedType).actualTypeArguments[0] as Class<VM?>
30+
}
31+
32+
33+
}

0 commit comments

Comments
 (0)