我正在制作一个Android应用程序,随着时间的推移会变得有点大。我想要做的是实现逻辑的主类子文件。例如:
主要活动使用surfaceview。
class Battle extends SurfaceView implements SurfaceHolder.Callback {
我想在一个名为touchActions.java的文件中添加与触摸事件相关的所有逻辑
public class touchActions extends Battle {
它似乎工作正常,Eclipse中没有错误。但是当我尝试在手机上运行它时,我会得到以下行的空指针异常。
if (_touch.checkHitBox(1)) {
_touch在宣布Battle类之后被启动。
public touchActions _touch;
执行此操作的正确方法是什么,或者导致nullpointerexception的原因是什么?
编辑:
这里的目标是组织代码,这样我就不会得到一个巨大的代码文件。我还可以在使用不同的文件时创建内部类吗?如果你知道一个教程,那也很棒。
答案 0 :(得分:2)
_touch在宣布Battle类之后被启动。
public touchActions _touch;
未启动 ...只是声明你需要用这样的东西启动它
_touch = new touchActions();
编辑:
如果公开touchActions _touch;在战斗课上宣布你做错了......
它应该是这样的
class Battle extends SurfaceView implements SurfaceHolder.Callback {
public touchActions _touch;
public Battle (){
_touch = new touchActions(this);
_touch.callingMethodFromTouch();
}
}
//should not extends Battle
public class touchActions {
Battle parent_;
public touchActions (Battle parent){
parent_ = parent;
}
.... rest of implemetation you can call parent_.methodFromBattleClass(); here
}