我想创建一个接收活动作为参数的函数,并使用它来更改该活动。但是,如果我使用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?
答案 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);
}
完成任务。我现在尝试了这个。