我试图创建一个按钮,使用户到一个新的活动,我创建这样的东西:
//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
}
一些可能的解决方案是
- 在顶层声明你的导航方法
例如,创建一个helper。将你的goToActivity粘贴到这里
-
切换到具有多个片段的单个活动,您将能够使用一些第三方解决方案,如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()
}
}
现在你可以从任何类调用这个函数。