package com.doumee.lib_coremodel.base; 
 | 
  
 | 
import android.content.Intent; 
 | 
import android.os.Bundle; 
 | 
  
 | 
import androidx.annotation.IdRes; 
 | 
import androidx.annotation.Nullable; 
 | 
import androidx.databinding.DataBindingUtil; 
 | 
import androidx.databinding.ViewDataBinding; 
 | 
import androidx.fragment.app.Fragment; 
 | 
  
 | 
import com.doumee.lib_coremodel.R; 
 | 
  
 | 
  
 | 
/** 
 | 
 * 用于容纳Fragment的通用Activity,相当于一个Fragment容器,通过{@link Intent} 传递参数和标识,然后实现{@link #switchFragment}处理对应的逻辑 
 | 
 * @author <a href="mailto:jenly1314@gmail.com">Jenly</a> 
 | 
 */ 
 | 
public abstract class ContentActivity extends BaseActivity<DataViewModel, ViewDataBinding> { 
 | 
  
 | 
  
 | 
    @Override 
 | 
    public int getLayoutId() { 
 | 
        return R.layout.mvvmframe_content_activity; 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public void initData(@Nullable Bundle savedInstanceState) { 
 | 
        switchFragment(getIntent()); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 不使用DataBinding {@link DataBindingUtil} 
 | 
     * @return 
 | 
     */ 
 | 
    @Override 
 | 
    public boolean isBinding() { 
 | 
        return false; 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     *  通过{@link #getSupportFragmentManager()}将布局替换成{@link Fragment},如在{@link #switchFragment(Intent)}方法中使用 
 | 
     * @param fragment 
 | 
     */ 
 | 
    protected void replaceFragment(Fragment fragment){ 
 | 
        replaceFragment(R.id.fragmentContent,fragment); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     *  通过{@link #getSupportFragmentManager()}将布局替换成{@link Fragment} 
 | 
     * @param fragment 
 | 
     */ 
 | 
    protected void replaceFragment(@IdRes int id, Fragment fragment) { 
 | 
        getSupportFragmentManager().beginTransaction().replace(id, fragment).commit(); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 切换Fragment 
 | 
     * @param intent 通过{@link Intent} 传递参数和标记来判断对应展示某个{@link Fragment} 
 | 
     */ 
 | 
    protected abstract void switchFragment(Intent intent); 
 | 
} 
 |