From 31b7700b976a46901f67c5d7a00281ca4745fc9f Mon Sep 17 00:00:00 2001 From: Linjiajia <319408893@qq.com> Date: 星期六, 07 十月 2023 21:44:35 +0800 Subject: [PATCH] 调整旅游模块功能 --- app_base/src/main/java/com/android/app_base/base/view/BaseActivity.java | 65 +++++++++++++++++++++----------- 1 files changed, 43 insertions(+), 22 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..8a06b68 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 @@ -5,6 +5,7 @@ import android.content.Context; import android.content.Intent; import android.os.Bundle; +import android.text.TextUtils; import android.view.View; import android.view.ViewGroup; import android.view.Window; @@ -15,30 +16,30 @@ 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.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; import java.lang.reflect.Type; +import java.util.Set; /** * 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 +48,6 @@ * 鐘舵�佹爮娌夋蹈 */ private ImmersionBar mImmersionBar; - - - @Override - protected void onResume() { - super.onResume(); - } @Override protected void onCreate(@Nullable Bundle savedInstanceState) { @@ -63,13 +58,12 @@ initParam(); //椤甸潰view鍒濆鍖栨柟娉� initView(); - //椤甸潰鏁版嵁鍒濆鍖栨柟娉� - initData(); //椤甸潰浜嬩欢鐩戝惉鐨勬柟娉曪紝鐢ㄤ簬ViewModel灞傝浆鍒癡iew灞傜殑浜嬩欢娉ㄥ唽 initLiveDataObserve(); - - ScreenSizeUtils.setCustomDensity(this, BaseApplication.getInstance()); + //椤甸潰鏁版嵁鍒濆鍖栨柟娉� + initData(); } + @Override protected void onDestroy() { @@ -92,6 +86,7 @@ initStateView(); //鍒濆鍖栨矇娴稿紡鐘舵�佹爮鍜� titleBar initStatusBar(); + initSoftKeyboard(); } /** @@ -99,8 +94,7 @@ */ protected void initViewDataBindingAndViewModel() { if (getLayoutId() > 0) { - binding = DataBindingUtil.setContentView(this, getLayoutId()); - initSoftKeyboard(); + binding = initViewBinding(); } viewModelId = getVariableId(); viewModel = initViewModel(); @@ -115,6 +109,13 @@ getLifecycle().addObserver(viewModel); } } + + /** + * 鍒濆鍖朧iewBinding + */ + protected VDB initViewBinding() { + return DataBindingUtil.setContentView(this, getLayoutId()); + } /** * 鍒濆鍖朧iewModel * @return 杩斿洖涓�涓猇iewModel @@ -125,11 +126,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杩涜瑙傚療鐩戝惉 @@ -148,6 +150,9 @@ case DATA_LOADING: dataLoading(); break; + case DATA_FINISH: + dataFinish(); + break; case DATA_ERROR: dataError(); break; @@ -165,7 +170,18 @@ } } }); + viewModel.getMessageLivaData().observe(this, new Observer<String>() { + @Override + public void onChanged(String message) { + if (!TextUtils.isEmpty(message)){ + ToastUtils.showShort(message); + } + } + }); } + + + /** * 缂虹渷椤电瓑鐘舵�佽鍥剧殑鏇存柊 * 鏈夐渶姹傜殑锛屽湪瀛愮被閫夋嫨閲嶅啓 @@ -175,6 +191,8 @@ protected void dialogDismiss() { } protected void dataLoading() { + } + protected void dataFinish() { } protected void dataError() { } @@ -189,12 +207,14 @@ * 鍒濆鍖栨矇娴稿紡鐘舵�佹爮 */ protected void initStatusBar(){ + if (getTitleBar() != null) { + getTitleBar().setOnTitleBarListener(this); + } if (isStatusBarImmersionEnabled()) { getImmersionBarConfig().init(); // 璁剧疆鏍囬鏍忔矇娴�() if (getTitleBar() != null) { ImmersionBar.setTitleBar(this, getTitleBar()); - getTitleBar().setOnTitleBarListener(this); } } } @@ -287,6 +307,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