我正在使用的 Android 应用程序有问题。
我的应用程序有几个部分,加载的下一个屏幕基于一个字符串。因此,第 1 部分的屏幕 1 将是 S1S1。
我的问题是,如何根据字符串启动 Activity 。我将 S1S1 保存在一个字符串中,让我们将其称为下一个 Activity 。我不需要输入 S1S1.class,而是需要它来自字符串。我已经尝试了所有我能想到的方法,但谷歌并没有多大帮助。
我尝试过的一些事情是
Intent myIntent = new Intent(nextactivity);
Intent myIntent = new Intent(v.getContext(), getClass().getName().valueOf(nextactivity));
Intent myIntent = new Intent(v.getContext(), Class.forName(nextactivity));
并尝试运行
startActivityForResult(myIntent, 0);
但似乎没有任何效果。有什么想法吗?
最佳答案
这是一个代码,您可以通过该代码使用 Activity 的名称开始 Activity
String activityToStart = "com.example.MainActivity";
try {
Class<?> c = Class.forName(activityToStart);
Intent intent = new Intent(this, c);
startActivity(intent);
} catch (ClassNotFoundException ignored) {
}
编辑
这里的类名将是类的全名和包名。
例如,如果您的包名称将是 x.y.z
并且如果您的 Activity 名称称为 A
,那么 Activity A
的全名将是 x.y.z.A
.
关于java - 如何使用字符串中的类名启动新的 android Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5754855/