繁体   English   中英

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

[英]How to pass an Activity as parameter in function

我想创建一个函数,该函数接收一个Activity作为参数,并将其更改为该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);

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

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

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

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

这是一个示例,如何根据您的情况进行:

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

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

做这份工作。 我现在尝试了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM