如何在函数中传递 Activity 作为参数

E.A*_*kio 0 android android-activity

我想创建一个接收 Activity 作为参数的函数,并且通过它,它将更改为该 Activity。但是,如果我使用.classActivity 的 来调用该函数,则会将该函数的参数更改为 a Class<{Name}Activity>,因此它只会接受该活动。

例如。调用函数:

sendUserToActivity(MainActivity.class);
Run Code Online (Sandbox Code Playgroud)

它是如何定义的:

private void sendUserToActivity(Class<MainActivity> activityClass) {
    Intent intent = new Intent(RegisterActivity.this, activityClass);
    startActivity(intent);
}
Run Code Online (Sandbox Code Playgroud)

如果我尝试另一个电话:

sendUserToActivity(LoginActivity.class);
Run Code Online (Sandbox Code Playgroud)

它得到一个错误。既然该函数的参数被设置为Class MainActivity,它当然不会接受另一个Activity,那么应该如何定义它来接受另一个Activity呢?

Ale*_*ker 5

也许你可以尝试这个:

private void sendUserToActivity(Class<? extends Activity> activityClass) {
    Intent intent = new Intent(RegisterActivity.this, activityClass);
    startActivity(intent);
}
Run Code Online (Sandbox Code Playgroud)

这样,您就可以使用泛型,并且扩展活动的每个人都将被接受,因此您的代码可以适应您想要的每个活动。