From 1df231fd6aafa221aef3532d069c7e27d4331be7 Mon Sep 17 00:00:00 2001 From: Linjiajia <319408893@qq.com> Date: 星期日, 27 八月 2023 19:21:01 +0800 Subject: [PATCH] 功能全部完成 --- app_base/src/main/java/com/android/app_base/base/view/BaseActivity.java | 62 +++++++++++++++++++----------- 1 files changed, 39 insertions(+), 23 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 2fb56c9..aa5a3ff 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,14 +15,17 @@ 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.action.ClickAction; import com.android.app_base.base.viewmodel.BaseViewModel; import com.android.app_base.base.StateViewEnum; +import com.android.app_base.base.viewmodel.SimpleViewModel; +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,11 +34,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; - /** * 鏍囬鏍忓璞� */ @@ -44,12 +46,6 @@ * 鐘舵�佹爮娌夋蹈 */ private ImmersionBar mImmersionBar; - - - @Override - protected void onResume() { - super.onResume(); - } @Override protected void onCreate(@Nullable Bundle savedInstanceState) { @@ -60,11 +56,12 @@ initParam(); //椤甸潰view鍒濆鍖栨柟娉� initView(); - //椤甸潰鏁版嵁鍒濆鍖栨柟娉� - initData(); //椤甸潰浜嬩欢鐩戝惉鐨勬柟娉曪紝鐢ㄤ簬ViewModel灞傝浆鍒癡iew灞傜殑浜嬩欢娉ㄥ唽 initLiveDataObserve(); + //椤甸潰鏁版嵁鍒濆鍖栨柟娉� + initData(); } + @Override protected void onDestroy() { @@ -87,6 +84,7 @@ initStateView(); //鍒濆鍖栨矇娴稿紡鐘舵�佹爮鍜� titleBar initStatusBar(); + initSoftKeyboard(); } /** @@ -94,8 +92,7 @@ */ protected void initViewDataBindingAndViewModel() { if (getLayoutId() > 0) { - binding = DataBindingUtil.setContentView(this, getLayoutId()); - initSoftKeyboard(); + binding = initViewBinding(); } viewModelId = getVariableId(); viewModel = initViewModel(); @@ -110,6 +107,13 @@ getLifecycle().addObserver(viewModel); } } + + /** + * 鍒濆鍖朧iewBinding + */ + protected VDB initViewBinding() { + return DataBindingUtil.setContentView(this, getLayoutId()); + } /** * 鍒濆鍖朧iewModel * @return 杩斿洖涓�涓猇iewModel @@ -120,11 +124,12 @@ if (type instanceof ParameterizedType){ vmClass = (Class) ((ParameterizedType) type).getActualTypeArguments()[1]; } else { - //濡傛灉娌℃湁鎸囧畾娉涘瀷鍙傛暟锛屽垯榛樿浣跨敤BaseViewModel - vmClass = (Class<VM>) BaseViewModel.class; + //濡傛灉娌℃湁鎸囧畾娉涘瀷鍙傛暟锛屽垯榛樿浣跨敤SimpleViewModel + vmClass = (Class<VM>) SimpleViewModel.class; } return new ViewModelProvider(this, (ViewModelProvider.Factory) ViewModelProvider.AndroidViewModelFactory.getInstance(getApplication())).get(vmClass); } + /** * 瀵圭姸鎬佽鍥緇iveData杩涜瑙傚療鐩戝惉 @@ -143,6 +148,9 @@ case DATA_LOADING: dataLoading(); break; + case DATA_FINISH: + dataFinish(); + break; case DATA_ERROR: dataError(); break; @@ -160,7 +168,16 @@ } } }); + viewModel.getMessageLivaData().observe(this, new Observer<String>() { + @Override + public void onChanged(String message) { + ToastUtils.showShort(message); + } + }); } + + + /** * 缂虹渷椤电瓑鐘舵�佽鍥剧殑鏇存柊 * 鏈夐渶姹傜殑锛屽湪瀛愮被閫夋嫨閲嶅啓 @@ -170,6 +187,8 @@ protected void dialogDismiss() { } protected void dataLoading() { + } + protected void dataFinish() { } protected void dataError() { } @@ -184,12 +203,14 @@ * 鍒濆鍖栨矇娴稿紡鐘舵�佹爮 */ protected void initStatusBar(){ + if (getTitleBar() != null) { + getTitleBar().setOnTitleBarListener(this); + } if (isStatusBarImmersionEnabled()) { getImmersionBarConfig().init(); // 璁剧疆鏍囬鏍忔矇娴�() if (getTitleBar() != null) { ImmersionBar.setTitleBar(this, getTitleBar()); - getTitleBar().setOnTitleBarListener(this); } } } @@ -231,12 +252,6 @@ mTitleBar = obtainTitleBar(findViewById(Window.ID_ANDROID_CONTENT)); } return mTitleBar; - } - - @Override - public void onLeftClick(TitleBar titleBar) { - TitleBarAction.super.onLeftClick(titleBar); - onBackPressed(); } /** @@ -288,6 +303,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