使用 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
所以我有一个 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