From a0dc6be52293a64ebfe38b8c2391dc7d2ffe63ae Mon Sep 17 00:00:00 2001 From: Linjiajia <319408893@qq.com> Date: 星期一, 15 五月 2023 20:05:27 +0800 Subject: [PATCH] 提交代码 --- app_base/src/main/java/com/android/app_base/base/view/BaseActivity.java | 52 +++++++++++++++++++++++++++++++++------------------- 1 files changed, 33 insertions(+), 19 deletions(-) diff --git a/app_base/src/main/java/com/android/app_base/base/view/BaseActivity.java b/app_base/src/main/java/com/android/app_base/base/view/BaseActivity.java index 0c3c199..51b3ab8 100644 --- a/app_base/src/main/java/com/android/app_base/base/view/BaseActivity.java +++ b/app_base/src/main/java/com/android/app_base/base/view/BaseActivity.java @@ -15,17 +15,16 @@ import androidx.appcompat.app.AppCompatActivity; import androidx.databinding.DataBindingUtil; import androidx.databinding.ViewDataBinding; +import androidx.drawerlayout.widget.DrawerLayout; import androidx.lifecycle.Observer; 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.AdaptScreenUtils; +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; @@ -34,11 +33,10 @@ /** * Activity鍩虹被,鎵�鏈夌殑 Activity 閮借缁ф壙姝ょ被 */ -public abstract class BaseActivity<V extends ViewDataBinding,VM extends BaseViewModel> extends AppCompatActivity implements TitleBarAction{ - protected V binding; +public abstract class BaseActivity<VDB extends ViewDataBinding,VM extends BaseViewModel> extends AppCompatActivity implements TitleBarAction, ClickAction { + protected VDB binding; protected VM viewModel; private int viewModelId; - /** * 鏍囬鏍忓璞� */ @@ -47,12 +45,6 @@ * 鐘舵�佹爮娌夋蹈 */ private ImmersionBar mImmersionBar; - - - @Override - protected void onResume() { - super.onResume(); - } @Override protected void onCreate(@Nullable Bundle savedInstanceState) { @@ -63,13 +55,12 @@ initParam(); //椤甸潰view鍒濆鍖栨柟娉� initView(); - //椤甸潰鏁版嵁鍒濆鍖栨柟娉� - initData(); //椤甸潰浜嬩欢鐩戝惉鐨勬柟娉曪紝鐢ㄤ簬ViewModel灞傝浆鍒癡iew灞傜殑浜嬩欢娉ㄥ唽 initLiveDataObserve(); - - ScreenSizeUtils.setCustomDensity(this, BaseApplication.getInstance()); + //椤甸潰鏁版嵁鍒濆鍖栨柟娉� + initData(); } + @Override protected void onDestroy() { @@ -92,6 +83,7 @@ initStateView(); //鍒濆鍖栨矇娴稿紡鐘舵�佹爮鍜� titleBar initStatusBar(); + initSoftKeyboard(); } /** @@ -99,8 +91,7 @@ */ protected void initViewDataBindingAndViewModel() { if (getLayoutId() > 0) { - binding = DataBindingUtil.setContentView(this, getLayoutId()); - initSoftKeyboard(); + binding = initViewBinding(); } viewModelId = getVariableId(); viewModel = initViewModel(); @@ -114,6 +105,13 @@ //璁¬iewModel鎷ユ湁View鐨勭敓鍛藉懆鏈熸劅搴� getLifecycle().addObserver(viewModel); } + } + + /** + * 鍒濆鍖朧iewBinding + */ + protected VDB initViewBinding() { + return DataBindingUtil.setContentView(this, getLayoutId()); } /** * 鍒濆鍖朧iewModel @@ -130,6 +128,7 @@ } return new ViewModelProvider(this, (ViewModelProvider.Factory) ViewModelProvider.AndroidViewModelFactory.getInstance(getApplication())).get(vmClass); } + /** * 瀵圭姸鎬佽鍥緇iveData杩涜瑙傚療鐩戝惉 @@ -148,6 +147,9 @@ case DATA_LOADING: dataLoading(); break; + case DATA_FINISH: + dataFinish(); + break; case DATA_ERROR: dataError(); break; @@ -165,7 +167,16 @@ } } }); + viewModel.getMessageLivaData().observe(this, new Observer<String>() { + @Override + public void onChanged(String message) { + ToastUtils.showShort(message); + } + }); } + + + /** * 缂虹渷椤电瓑鐘舵�佽鍥剧殑鏇存柊 * 鏈夐渶姹傜殑锛屽湪瀛愮被閫夋嫨閲嶅啓 @@ -175,6 +186,8 @@ protected void dialogDismiss() { } protected void dataLoading() { + } + protected void dataFinish() { } protected void dataError() { } @@ -287,6 +300,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(); } } } -- Gitblit v1.9.1