Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.harukaedu.lms.bases;
- import android.app.Activity;
- import android.content.Intent;
- import android.os.Bundle;
- import androidx.annotation.LayoutRes;
- import androidx.annotation.Nullable;
- import androidx.appcompat.app.AppCompatActivity;
- import androidx.databinding.DataBindingUtil;
- import androidx.databinding.ViewDataBinding;
- public abstract class BaseDataBindingActivity<VDB extends ViewDataBinding> extends AppCompatActivity {
- @LayoutRes
- protected abstract int getContentView();
- protected abstract void initViews();
- protected abstract void initDataBinding(VDB bindingData);
- @Override
- protected void onCreate(@Nullable Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- onPreCreateView(savedInstanceState);
- VDB binding = DataBindingUtil.setContentView(this, getContentView());
- initDataBinding(binding);
- if (getIntent().getExtras() != null)
- collectExtras(getIntent().getExtras());
- if (savedInstanceState != null)
- onLoadSavedInstanceState(savedInstanceState);
- onPostCreateView(savedInstanceState);
- }
- protected void changePage(Class<? extends Activity> cls){
- changePage(cls, (Bundle) null, (Integer) null);
- }
- protected void changePage(Class<? extends Activity> cls, Bundle bundle){
- changePage(cls, bundle, (Integer) null);
- }
- protected void changePage(Class<? extends Activity> cls, Integer... flags){
- changePage(cls, null, flags);
- }
- protected void changePage(Class<? extends Activity> cls, Bundle bundle, Integer... flags){
- Intent intent = new Intent(this, cls);
- if (bundle != null)
- intent.putExtras(bundle);
- if (flags != null){
- for (Integer flag : flags){
- if (flag != null)
- intent.addFlags(flag);
- }
- }
- startActivity(intent);
- }
- protected void changePageOnResult(Class<? extends Activity> cls, int requestCode){
- changePageOnResult(cls, null, requestCode);
- }
- protected void changePageOnResult(Class<? extends Activity> cls, Bundle bundle, int requestCode){
- Intent intent = new Intent(this, cls);
- if (bundle != null)
- intent.putExtras(bundle);
- startActivityForResult(intent, requestCode);
- }
- protected void collectExtras(Bundle bundle){
- //call when getIntent().getExtras() is not null
- }
- protected void onPreCreateView(Bundle savedInstanceState){
- //call before setContentView
- }
- protected void onLoadSavedInstanceState(Bundle savedInstanceState){
- //call when savedInstanceState is not null
- }
- protected void onPostCreateView(Bundle savedInstanceState){
- //call after initViews()
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement