有点新手的问题,我想我做错了。
这是我的第一个应用程序,我试图将它设置为多个文件和类,这是我目前的问题:
为了整洁和未来的意外使用,我将我的布局放到了函数中:
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的值,但我真的不确定是什么。
发布于 2011-03-30 19:43:28
不要这样做。每个活动都应该有一个对setContentView()函数的调用来初始化该函数。应该不需要外部引用它。
发布于 2011-03-30 19:47:25
您应该从活动中调用setContentView,而不是从Application中调用。如果你想在你的Application中做这件事(不知道为什么),你应该提供一个你的活动的引用。但这是一个糟糕的设计,再加上你不会将你的类命名为pagecla,你最好读一读java命名约定。
看来你也缺乏面向对象的知识。您的函数实际上是一个方法,需要在其上调用一个对象。它是重构之前的Activity,重构之后的pagecla。
https://stackoverflow.com/questions/5485752
复制相似问题