Android子类和单独的Java文件

Android子类和单独的Java文件,android,class,file,Android,Class,File,我正在为android开发一个应用程序,随着时间的推移,它可能会变得越来越大。我想做的是实现到主类的子文件中,以实现逻辑。例如: 主要活动使用surfaceview class Battle extends SurfaceView implements SurfaceHolder.Callback { 我想在名为touchActions.java的文件中添加与触摸事件相关的所有逻辑 public class touchActions extends Battle { 它在Eclipse中似乎

我正在为android开发一个应用程序,随着时间的推移,它可能会变得越来越大。我想做的是实现到主类的子文件中,以实现逻辑。例如:

主要活动使用surfaceview

class Battle extends SurfaceView implements SurfaceHolder.Callback {
我想在名为touchActions.java的文件中添加与触摸事件相关的所有逻辑

public class touchActions extends Battle {
它在Eclipse中似乎工作正常,没有错误。但是当我试着在手机上运行它时,我得到了下面一行的空指针异常

if (_touch.checkHitBox(1)) {
_战斗等级宣告后触发的触摸

public touchActions _touch;
正确的方法是什么,或者是什么导致了nullpointerexception

编辑:

这里的目标是组织代码,这样我就不会得到一个巨大的代码文件。我可以在仍然使用不同文件的情况下创建一个内部类吗?如果你知道一个教程,那也太好了

_战斗等级宣告后触发的触摸

public touchActions _touch;
公众接触行动

未启动。。。只是宣布你需要用这样的东西来启动它

_touch = new touchActions();
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
}
编辑:

如果公众接触行动(u touch),;在战斗课上被宣布你做错了

应该是这样的

_touch = new touchActions();
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
}

这里没有足够的代码来查看问题所在。您在哪里初始化“touchActions”成员变量?为什么将
touchActions
作为
Battle
的子类?它应该被设计成做自己的事情。如果需要访问<代码>战斗<代码>的实例变量,请考虑通过<代码>战斗<代码> >代码> < <代码> > <代码>触摸动作> /Case>对象,或使<代码>触摸动作类>代码>战斗> /代码>的内部类。(扩展
Battle
意味着
touchActions
对象将拥有
Battle
对象中所有字段的独立副本。如果
public touchActions
是在Battle类中声明的,这是一个巨大的设计缺陷Hopp,那么最好的方法是什么?我只想组织代码我在编辑之前没有读过@Ted Hopp的评论,但这确实是他写的