防止代码重复的按钮类

  • 本文关键字:按钮 代码 android kotlin
  • 更新时间 :
  • 英文 :


我试图创建一个按钮,使用户到一个新的活动,我创建这样的东西:

//Main Activity
btnChangeScene.setOnClickListener { goToActivity(this, SecondActivity::class.java) }

fun Context.goToActivity(activity: Activity, classs: Class<*>?) {
val intent = Intent(activity, classs)
startActivity(intent)
activity.finish()
}

但是当我尝试回到MainActivity时,我需要创建一个新的goToActivity"这对任何程序员来说都很糟糕,因为对于每个新活动,我都需要创建一个新的gotoactivity。里面。

我怎样才能在这个类中实现这个相同的函数,这样我就可以调用这个函数,而不是每次创建一个新活动时都要创建它?

class ButtonActivity(private val button: Button): Activity(){
// code here
}

一些可能的解决方案是

  1. 在顶层声明你的导航方法

例如,创建一个helper。将你的goToActivity粘贴到这里

  1. 切换到具有多个片段的单个活动,您将能够使用一些第三方解决方案,如jatpack导航. 或者您可以在main中编写自己的函数,例如:

    public void navigate(Fragment frag) {
    FragmentManager fragmentManager = getFragmentManager();
    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
    fragmentTransaction.replace(R.id.fragment, frag);
    fragmentTransaction.commit();
    }
    

创建一个新的kotlin伴侣对象,如下所示。

companion object AnyName {
fun Context.goToActivity(activity: Activity, classs: Class<*>?) {
val intent = Intent(activity, classs)
startActivity(intent)
activity.finish()
}
}

现在你可以从任何类调用这个函数。

最新更新