BaseActivity.java 1014 Bytes
package com.ys.yslibrary.ui;

import android.os.Bundle;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.databinding.DataBindingUtil;
import androidx.databinding.ViewDataBinding;
import androidx.lifecycle.ViewModel;
import androidx.lifecycle.ViewModelProvider;

public abstract class BaseActivity extends AppCompatActivity {
    private ViewDataBinding baseBinding;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        baseBinding = DataBindingUtil.setContentView(this, getBindingLayoutId());
        init();
    }

    public ViewDataBinding getBaseBinding() {
        return baseBinding;
    }

    protected abstract void init();

    protected abstract int getBindingLayoutId();

    abstract void initViewModel();

    public ViewModel getViewModel(Class tClass) {
        return new ViewModelProvider(this, new ViewModelProvider.NewInstanceFactory()).get(tClass);
    }

}