java - 如何使用字符串中的类名启动新的 android Activity ?

标签 java android string class android-activity

我正在使用的 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/

相关文章:

java - 如何打印 logback 内部错误和状态日志?

java - java类崩溃中的startActivity

android - 在 AppBarLayout 中隐藏 FrameLayout

android - Android集成谷歌登录时ID token过期如何刷新?

Java套接字,那是死锁还是什么?

java - 将包传递给设置为单任务的 Activity

java - 从字符串中提取字符并按类型放入特定数组

c - 如何扫描字符串直到出现特定单词

java - List<String> 作为 GET 方法的输入

java - 使用Java压缩图像大小