本文主要使用泛型优化项目结构,只对关键修改部分进行说明,如果不了解项目结构请看我的上两篇博客:
Android MVVM改进版 DataBinding+Retrofit+RxJava+ViewModel+LiveData(二)
Android MVVM基础版 DataBinding+Retrofit+RxJava(一)
一、修改BaseActivity
public abstract class BaseActivity<VM extends AndroidViewModel, DB extends ViewDataBinding> extends AppCompatActivity {
private String TAG = "";
protected boolean isActive;
private WaitingAlertDialog waitDialog;
protected VM viewModel;
protected DB dataBinding;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
dataBinding = DataBindingUtil.setContentView(this,getLayoutId());
Class<VM> viewModelClass = ClassUtil.getViewModel(this);