Android应用中许多违反DRY原则的类似活动

问题描述 投票:1回答:1

我是Android App Development和Kotlin的新手。所以,现在我有了一个应用程序(用Kotlin编写),它具有20个活动,一个又一个:Activity1-> Activity2-> ...-> Activity20。

它们都具有相同的XML文件结构,只是显示的图像有所不同。他们也有类似的代码。由于每个活动(NEXT和BACK)中有2个按钮,所以它们的区别仅在于“ nextActivity”和“ previousActivity”(例如,Activity3意图Activity4的NEXT按钮和Activity5意图Activity6的NEXT按钮等等。)>

在某些时候,它开始让我担心,所以我尝试编写一个开放类:

open class everyActivity(pic: Int, nextActivity: Activity, prevActivity: Activity): AppCompatActivity() {

val pic = pic
val nextActivity = nextActivity
val prevActivity = prevActivity

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(pic)
}

fun nextClick(view: View) {
    val nextIntent = Intent(this, nextActivity::class.java)
    startActivity(nextIntent)
    this.finish()
}

fun backClick(view: View){
    val prevIntent = Intent(this, prevActivity::class.java)
    startActivity(prevIntent)
    this.finish()
}
}

然后,我尝试继承这些类似的活动,但是我无法将Activity作为类的参数传递(由于“ Classifier'Activity2'没有伴侣对象,依此类推”):

class Activity2 : everyActivity(R.layout.activity_02, Activity3, Activity1) {}

而且,总的来说,这种结构看起来很奇怪。那时候我以为我可能根本不必这样做。

所以,最后一个问题

有DRY原则考虑大多数编程。但是,我想知道:在Android中使用类似的代码进行活动实际上方便吗?

我是Android App Development和Kotlin的新手。所以,现在我有了一个应用程序(用Kotlin编写),它具有20个活动,一个又一个:Activity1-> Activity2-> ...-> Activity20。它们都有...

android kotlin android-activity dry
1个回答
0
投票

实现DRY原则有多种可能。要实现DRY原则,您应该问自己自己我在违反另一个Android规则,例如Single Activity Architecture,这是更特定于Android的规则。

© www.soinside.com 2019 - 2024. All rights reserved.