Linjiajia
2023-03-28 bf4e40cdf60c2a2fd8a486051a1ddac2daefef62
app_base/src/main/java/com/android/app_base/base/view/BaseActivity.java
@@ -19,10 +19,13 @@
import androidx.lifecycle.ViewModelProvider;
import com.android.app_base.action.TitleBarAction;
import com.android.app_base.base.BaseApplication;
import com.android.app_base.base.action.ClickAction;
import com.android.app_base.base.viewmodel.BaseViewModel;
import com.android.app_base.base.StateViewEnum;
import com.android.app_base.utils.ScreenSizeUtils;
import com.blankj.utilcode.util.ToastUtils;
import com.gyf.immersionbar.ImmersionBar;
import com.hjq.bar.OnTitleBarListener;
import com.hjq.bar.TitleBar;
import java.lang.reflect.ParameterizedType;
@@ -31,7 +34,7 @@
/**
 *  Activity基类,所有的 Activity 都要继承此类
 */
public abstract class BaseActivity<V extends ViewDataBinding,VM extends BaseViewModel> extends AppCompatActivity implements TitleBarAction{
public abstract class BaseActivity<V extends ViewDataBinding,VM extends BaseViewModel> extends AppCompatActivity implements TitleBarAction, ClickAction {
    protected V binding;
    protected VM viewModel;
    private int viewModelId;
@@ -46,10 +49,6 @@
    private ImmersionBar mImmersionBar;
    @Override
    protected void onResume() {
        super.onResume();
    }
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
@@ -60,11 +59,16 @@
        initParam();
        //页面view初始化方法
        initView();
        //页面数据初始化方法
        initData();
        //页面事件监听的方法,用于ViewModel层转到View层的事件注册
        initLiveDataObserve();
    }
    @Override
    protected void onResume() {
        super.onResume();
        //页面数据初始化方法
        initData();
    }
    @Override
    protected void onDestroy() {
@@ -160,6 +164,12 @@
                }
            }
        });
        viewModel.getMessageLivaData().observe(this, new Observer<String>() {
            @Override
            public void onChanged(String message) {
                ToastUtils.showShort(message);
            }
        });
    }
    /**
     * 缺省页等状态视图的更新
@@ -233,12 +243,6 @@
        return mTitleBar;
    }
    @Override
    public void onLeftClick(TitleBar titleBar) {
        TitleBarAction.super.onLeftClick(titleBar);
        onBackPressed();
    }
    /**
     * 获取根布局的id,由子类实现返回
     * @return layout的id
@@ -288,6 +292,7 @@
            InputMethodManager manager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
            if (manager != null && manager.isActive(view)) {
                manager.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
                view.clearFocus();
            }
        }
    }