动态调用一个类?

时间:2012-03-27 18:01:17

标签: android android-intent

是否可以创建动态调用意图?
我想动态地将名为mIntent的字符串变量推送到intent调用中..是否可能:

Intent newView = new Intent(getContext(), mIntent);

                    newView.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                    getContext().startActivity(newView)

我的解决方案,其中“mIntent”是一个字符串:

Intent i = new Intent(Intent.ACTION_VIEW);
                    i.setComponent(new ComponentName("com.slcinstore2","com.lcinstore2."+mIntent));
                    i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

                    getContext().startActivity(i);

这样做,然后将其添加到我的清单中工作!

2 个答案:

答案 0 :(得分:3)

你的问题有点不清楚,但也许我仍然明白你想要做什么。 你的意图应该是这样的:

 String clsName = "com.foo.bar.myClass";  // fully qualified name

 Intent newView = new Intent(getContext(), Class.forName(clsName));
 ....
 ....
 startActivity(newView);

这可能是你的想法....我已经测试了这个,所以我不知道它是否真的有效。

答案 1 :(得分:1)

您可以使用Class.forName()并使用getPackageName()来避免硬编码:

Intent newView = new Intent(getContext(), Class.forName(getPackageName() + "YourClassName"));
startActivity(newView);