6

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

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

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

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

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

4

5 回答 5

8

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

于 2013-02-13T09:28:57.083 回答
6

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

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);

这里的类名将是带有包名的类的全名。例如,如果您的包名称为 xyz,并且您的活动名称为 A,则活动 A 的全名将是 xyzA

于 2013-02-13T09:29:42.153 回答
4

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

于 2013-02-13T09:28:53.323 回答
2

就用....

  Intent intent = new Intent().setClassName(activity,"packageName"+"className");
  startActivity(intent);
于 2016-09-24T11:54:38.227 回答
1


Class<?> c =Class.forName("YOUR STRING" );
Intent intent = new Intent(FirstActivity.this, c);
startActivity(intent);
于 2013-02-13T09:31:11.970 回答