2011-03-30 70 views
0

一点点的noob问题,我想我正在讨论这个错误的方式。Android应用程序 - 查看功能

这是我的第一个应用程序,我试图将其设置成多个文件和类,我目前的问题:

对于整洁和不可预见的使用在未来,我已经把我的布局到功能:

public void homepage(){ 
    setContentView(R.layout.layout_homepage); 
} 

我使用菜单大多数我的直接导航和,以前,要求在 onOptionsItemSelected这些功能()完美。

然而,当我提出我的网页功能,以一个单独的类:

public class newpage extends MyApp { 

    //Home 
    public void homepage(){ 
     setContentView(R.layout.layout_homepage); 
    } 
.... 

,并要求他们在功能:

public boolean onOptionsItemSelected(MenuItem item) { 

    //Create new page class 
     newpage pagecla = new newpage(); 
    ... 

    pagecla.homepage(); 
    .... 

它崩溃的应用程序,和调试只感觉我的时候可以使它成为一个NullPointerException。 我猜我必须为View提供某种价值,但我真的不确定是什么。

回答

0

不要这样做。每个活动都应该调用setContentView()函数来初始化函数。不应该需要从外部引用它。

0

您应该从您的活动中调用setContentView,而不是您的Application。无论如何,如果你想从Application这样做(不知道为什么),你应该提供一个参考你的活动。但这是一个糟糕的设计,再加上你不能命名你的类pagecla,你最好阅读关于java命名约定。
看来你也缺乏面向对象的知识。你的函数实际上是一个方法,它需要一个对象被调用。它是你的重构之前的Activity和它之后的pagecla