2011-03-30 94 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