我是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。它们都有...
实现DRY
原则有多种可能。要实现DRY
原则,您应该问自己自己我在违反另一个Android规则,例如Single Activity Architecture
,这是更特定于Android的规则。