Android动态启动活动

时间:2012-06-28 07:49:29

标签: java android android-intent android-activity

我对android开发很新。我的应用程序有很多视图/活动,用户可以根据他/她的输入从一个视图跳转到另一个视图。所以我想创建一个具有函数

的接口IView
void openNewView(Class viewClass);

并且视图类中的函数看起来像这样

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

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

我面临的问题是java不接受Class

类型的参数

我在这里做错了什么。是否有关于我想要实现的目标的工作。

2 个答案:

答案 0 :(得分:0)

尝试在openNewView方法中添加当前的Context param:

void openNewView(Class viewClass,context);

并在您的函数中:

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

答案 1 :(得分:0)

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

public abstract class BaseActivity {

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

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