| | |
| | | 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; |
| | |
| | | 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.TitleBar; |
| | | |
| | | import java.lang.reflect.ParameterizedType; |
| | | import java.lang.reflect.Type; |
| | | import java.util.Set; |
| | | |
| | | /** |
| | | * Activity基类,所有的 Activity 都要继承此类 |
| | |
| | | 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); |
| | | } |
| | |
| | | viewModel.getMessageLivaData().observe(this, new Observer<String>() { |
| | | @Override |
| | | public void onChanged(String message) { |
| | | ToastUtils.showShort(message); |
| | | if (!TextUtils.isEmpty(message)){ |
| | | ToastUtils.showShort(message); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | |
| | | * 有需求的,在子类选择重写 |
| | | */ |
| | | protected void dialogLoading() { |
| | | |
| | | } |
| | | protected void dialogDismiss() { |
| | | } |
| | |
| | | * 初始化沉浸式状态栏 |
| | | */ |
| | | protected void initStatusBar(){ |
| | | if (getTitleBar() != null) { |
| | | getTitleBar().setOnTitleBarListener(this); |
| | | } |
| | | if (isStatusBarImmersionEnabled()) { |
| | | getImmersionBarConfig().init(); |
| | | // 设置标题栏沉浸() |
| | | if (getTitleBar() != null) { |
| | | ImmersionBar.setTitleBar(this, getTitleBar()); |
| | | getTitleBar().setOnTitleBarListener(this); |
| | | } |
| | | } |
| | | } |