我对android开发很新。我的应用程序有很多视图/活动,用户可以根据他/她的输入从一个视图跳转到另一个视图。所以我想创建一个具有函数
的接口IViewvoid openNewView(Class viewClass);
并且视图类中的函数看起来像这样
public void openNewView(Class viewClass)
{
Intent intent = new Intent(this, viewClass.class);
startActivity(intent);
}
整个想法是我的控制器可以监听用户输入,然后根据要求调用openNewView。
我面临的问题是java不接受Class
类型的参数我在这里做错了什么。是否有关于我想要实现的目标的工作。
答案 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);
}
}
这样,您不必在每个活动中复制代码并保持代码清洁。