如何将活动作为函数中的参数传递

时间:2019-01-03 18:06:42

标签: android android-activity

我想创建一个接收活动作为参数的函数,并使用它来更改该活动。但是,如果我使用Activity的.class来调用该函数,它将把该函数的参数更改为Class<{Name}Activity>,因此它将仅接受该活动。

例如。调用函数:

sendUserToActivity(MainActivity.class);

它的定义方式:

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

如果我再打一个电话:

sendUserToActivity(LoginActivity.class);

出现错误。由于该函数的参数被建立为MainActivity类,因此它当然不会接受另一个Activity,那么应该如何定义它才能接受另一个Activity?

3 个答案:

答案 0 :(得分:3)

也许您可以尝试以下方法:

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

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

答案 1 :(得分:0)

以下是一个示例,如何根据您的情况进行操作:

private void sendUserToActivity(MainActivity activityClass) {
    Intent intent = new Intent(activityClass, activityClass.getClass());
    startActivity(intent);
}

答案 2 :(得分:0)

xyz(XActivity.class);

void xyz(Class<?> cls)
{
    Intent intent = new Intent(MainActivity.this, cls);
    startActivity(intent);
}

完成任务。我现在尝试了这个。

相关问题