问题描述
|
我正在为android开发一个应用程序,随着时间的流逝,它可能会变得越来越大。我想做的是实现到主类子文件中进行逻辑处理。例如:
主要活动使用Surfaceview。
class Battle extends SurfaceView implements SurfaceHolder.Callback {
我想在一个名为touchActions.java的文件中添加与触摸事件有关的所有逻辑。
public class touchActions extends Battle {
它似乎可以正常工作,并且在Eclipse中没有错误。但是,当我尝试在手机上运行它时,以下行出现了空指针异常。
if (_touch.checkHitBox(1)) {
宣布战斗等级后开始_touch。
public touchActions _touch;
什么是执行此操作的正确方法,否则可能导致nullpointerexception?
编辑:
这里的目标是组织代码,这样我就不会得到一个巨大的代码文件。在仍使用其他文件的同时可以进行内部类学习吗?如果您知道教程,那也很好。
解决方法
宣布战斗等级后开始_touch。
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
}