2012-06-28 54 views
0

我对android开发非常新颖。我的应用程序有很多views/Activity,用户可以根据他/她的输入从一个视图跳转到另一个视图。所以我想创建一个界面IVIEW这将有一个功能Android动态启动活动

void openNewView(Class viewClass); 

,并在视图类的功能会是这个样子

public void openNewView(Class viewClass) 
{ 
    Intent intent = new Intent(this, viewClass.class); 
    startActivity(intent); 
} 

整个想法是,我的控制器可以监听用户的输入,然后根据需要调用openNewView。

是我面临的问题是与Java不接受Class类型

它是什么,我做错了这里的参数。有什么我正在努力实现的工作。

回答

0

一个很好的方法将所有的活动,从这样一个抽象的活动来扩展:

public abstract class BaseActivity { 

    //.... 
    public void openNewView(Class viewClass) { 
     Intent intent = new Intent(this, viewClass.class); 
     startActivity(intent); 
    } 
} 

这样做,您不必在每次活动中复制您的代码并保持代码清洁。

0

试图通过openNewView方法将当前上下文PARAM为:

void openNewView(Class viewClass,context); 

,并在你的函数:

public void openNewView(Class viewClass,Context context) 
{ 
    Intent intent = new Intent(context, viewClass.class); 
    context.startActivity(intent); 
} 
+0

这可能是危险的,取决于方法定位的位置,因为可能非常容易以这种方式泄漏上下文。 – MikeIsrael