Android BaseActivity抽象举例

核心内容:log常用标记TAG赋值,状态栏设置,逻辑区分,onNewIntent重写,跳转方法简化.

/**
 *Author:XingHai.Zhao
 *Purpose: All Activity Father
 */
abstract class BaseActivity : AppCompatActivity() {
    var TAG: String = ""
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        supportRequestWindowFeature(Window.FEATURE_NO_TITLE)
        setContentView(mContentView)
        ImmersionBar.with(this).statusBarDarkFont(true).init()
        TAG = this.localClassName
        initView()
        initData()
        initListener()
    }

    abstract val mContentView: Int
    abstract fun initView()
    abstract fun initData()
    abstract fun initListener()

    override fun onNewIntent(intent: Intent?) {
        setIntent(intent)
        super.onNewIntent(intent)
    }

    fun goActivity(act: Class<*>?) {
        startActivity(Intent(this, act));
    }

    fun goActivity(act: Class<*>?, key: String, value: String) {
        startActivity(Intent(this, act).putExtra(key, value));
    }
    
}

 //状态栏自定义依赖:

implementation 'com.gyf.immersionbar:immersionbar:3.0.0'

子Activity继承举例:

class LoginActivity : BaseActivity() {

    override val mContentView: Int = R.layout.activity_login

    override fun initView() {}

    override fun initData() {}

    override fun setListener() {}

}

猜你喜欢

转载自blog.csdn.net/qq_39731011/article/details/120524336
今日推荐