Android 基类的封装

230 阅读1分钟
 implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
//类名->加泛型
abstract class BaseActivity<VM : ViewModel>(private val vmclazz: Class<VM>) :AppCompatActivity() {
    protected val viewModel: VM by lazy {
        ViewModelProvider(this).get(vmclazz)
    }
    
    override fun onCreate(savedInstanceState: Bundle?) {
        //super.onCreate->先执行父类onCreate,再继续
        super.onCreate(savedInstanceState)
        //禁止横屏
        requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
    }
}
open class BaseViewModel : ViewModel() {
    //    网络异常处理
    protected val error_message by lazy { MutableLiveData<String>() }
    
    fun getErrormessage(): MutableLiveData<String> {
        return error_message
    }
}