Modify: 基类

This commit is contained in:
Quyunshuo
2020-08-27 19:13:06 +08:00
parent 478e9ffd2f
commit f3a559dd78
9 changed files with 97 additions and 6 deletions

View File

@ -28,6 +28,10 @@ android {
jvmTarget = JavaVersion.VERSION_1_8.toString()
}
buildFeatures {
viewBinding = true
}
resourcePrefix "base_"
}

View File

@ -0,0 +1,25 @@
package com.quyunshuo.base.ui
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.viewbinding.ViewBinding
/**
* @Author: QuYunShuo
* @Time: 2020/8/27
* @Class: BaseFrameActivity
* @Remark: Activity基类 与项目无关
*/
abstract class BaseFrameActivity<VB : ViewBinding> : AppCompatActivity() {
lateinit var mBinding: VB
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
mBinding = initViewBinding()
setContentView(mBinding.root)
}
protected abstract fun initViewBinding(): VB
protected abstract fun initView()
}

View File

@ -0,0 +1,12 @@
package com.quyunshuo.base.ui
import androidx.fragment.app.Fragment
/**
* @Author: QuYunShuo
* @Time: 2020/8/27
* @Class: BaseFrameFragment
* @Remark: Fragment基类 与项目无关
*/
abstract class BaseFrameFragment : Fragment() {
}

View File

@ -0,0 +1,10 @@
package com.quyunshuo.base.ui
/**
* @Author: QuYunShuo
* @Time: 2020/8/27
* @Class: BaseRepository
* @Remark: 仓库层 Repository 基类
*/
open class BaseRepository {
}

View File

@ -0,0 +1,12 @@
package com.quyunshuo.base.ui
import androidx.lifecycle.ViewModel
/**
* @Author: QuYunShuo
* @Time: 2020/8/27
* @Class: BaseViewModel
* @Remark: ViewModel 基类
*/
open class BaseViewModel : ViewModel() {
}

View File

@ -0,0 +1,12 @@
package com.quyunshuo.common.ui
import androidx.viewbinding.ViewBinding
import com.quyunshuo.base.ui.BaseFrameActivity
/**
* @Author: QuYunShuo
* @Time: 2020/8/27
* @Class: BaseActivity
* @Remark: 项目相关的Activity基类
*/
abstract class BaseActivity<VB : ViewBinding> : BaseFrameActivity<VB>()

View File

@ -0,0 +1,12 @@
package com.quyunshuo.common.ui
import androidx.fragment.app.Fragment
/**
* @Author: QuYunShuo
* @Time: 2020/8/27
* @Class: BaseFragment
* @Remark: 项目相关的Fragment基类
*/
abstract class BaseFragment : Fragment() {
}

View File

@ -1,7 +1,7 @@
package com.quyunshuo.main
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.quyunshuo.common.ui.BaseActivity
import com.quyunshuo.main.databinding.MainActivityMainBinding
/**
* @Author: QuYunShuo
@ -9,9 +9,12 @@ import androidx.appcompat.app.AppCompatActivity
* @Class: MainActivity
* @Remark: 主界面Activity
*/
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.main_activity_main)
class MainActivity : BaseActivity<MainActivityMainBinding>() {
override fun initViewBinding(): MainActivityMainBinding =
MainActivityMainBinding.inflate(layoutInflater)
override fun initView() {
mBinding.mTv.text = "Hello MVVM"
}
}

View File

@ -7,6 +7,7 @@
tools:context=".MainActivity">
<TextView
android:id="@+id/mTv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Main"