【问题标题】:Intent and start activity from string从字符串意图和开始活动
【发布时间】:2013-02-13 09:26:04
【问题描述】:

我有一个小问题。我想以其他方式开始活动。我知道

Intent i = new Intent(this, ActivityTwo.class); 

初始化意图,然后我可以startActivity。但我想做这样的事情:

Intent i = new Intent(this, MyString.class);

我没有nameActivity.class,但我想更改 string.class。当我有类的字符串名称时如何开始活动?

【问题讨论】:

标签: android android-activity


【解决方案1】:

试试这个: startActivity(this, Class.forName(yourStringClass));

【讨论】:

  • 构造函数 Intent(TabsGenerator, Class) 也未定义:)
  • 试一试:(Class<? extends Activity>)Class.forName("YourClass")
  • Intent intent = new Intent(TabsGenerator.this, (Class extends Activity>)Class.forName(StringClassname));也不行。同样的错误
  • 你写的是完整的班级名称吗?带包。 "com.youpackge.YourClass" 你也可以试试:intent.setClassName(context,target);
  • 尝试使用 new Intent().setClassName
【解决方案2】:

这是一个代码,您可以通过该代码使用活动的名称开始活动

Class<?> c = null;
if(StringClassname != null) {
    try {
        c = Class.forName(StringClassname );
    } catch (ClassNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}
Intent intent = new Intent(mail.this, c);
startActivity(intent);

这里的类名将是类的全名和包名。例如,如果您的包名称为 x.y.z,并且您的活动名称为 A,那么活动 A 的全名将是 x.y.z.A。

【讨论】:

  • 构造函数 Intent(TabsGenerator, Class) 未定义
  • 将这个:Intent(TabsGenerator, Class&lt;capture#3-of ?&gt;); 改为 Intent(TabsGenerator.this, Class&lt;capture#3-of ?&gt;;
【解决方案3】:

您可以使用Class.forName("MyString") 按名称查找Class

【讨论】:

    【解决方案4】:

    只需使用....

      Intent intent = new Intent().setClassName(activity,"packageName"+"className");
      startActivity(intent);
    

    【讨论】:

      【解决方案5】:


      Class<?> c =Class.forName("YOUR STRING" );
      Intent intent = new Intent(FirstActivity.this, c);
      startActivity(intent);
      

      【讨论】:

      • 构造函数 Intent(TabsGenerator, Class) 未定义
      • 忘了提-类名应该是完全限定的类名。假设包名称是 com.something 并且字符串是“THESTRING”,那么完全限定名称将是 - com.something.THESTRING .. 希望这会有所帮助
      • @Anukool :请编辑您的答案并将此评论放入其中。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-06
      • 2016-06-30
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多