使用 ArrayList 创建 Intent

Creating Intent using an ArrayList

所以我有一个 ArrayList,我想使用这段代码(在 ListAdapter class 中)创建意图和切换活动:

for (int i = 0; i <= activityList.size(); i++){

    if (position == i){
        Intent intent = new Intent(context, (activityList.get(i).getName()).class);
        context.startActivity(intent);
    }
}

我在 .class.

附近收到 'identifier expected' 错误

我确实有一段工作代码,它可以满足我的要求,但我必须在此处指定 class(这不是我想要的):

if (position == 0) {
    Intent intent = new Intent(context, NextActivity.class);
    context.startActivity(intent);
}

不确定为什么第一段代码不起作用。任何帮助将不胜感激。

您需要传递 Class 类型作为 Intent 的第二个参数,您正在使用

Intent intent = new Intent(context, (activityList.get(i).getName()).class);

在这种情况下你需要List<Class>喜欢

List<Class> activityList = Arrays.asList(ActivityA.class, ActivityB.class, ActivityC.class);

像这样使用它:

Intent intent = new Intent(context, activityList.get(i));

我建议将您的 List<String> 更改为 List<Class>

这项工作最简单的方法是将您的字符串转换为 class。这是执行此操作的代码-

for (int i = 0; i <= activityList.size(); i++){
    if (position == i){
        String activity = "YourPackageName."+arrayList.get(i).getName();
        Intent intent = null;

        try {
            intent = new Intent(context, Class.forName(activity));
        } 
        catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        context.startActivity(intent);
    }
}

模型应该 return 没有 class 关键字的 class 名称。例如:-Main2Activity