Детские классы Android и отдельные файлы Java - PullRequest
0 голосов
/ 14 июня 2011

Я делаю приложение для Android, которое со временем может вырасти. То, что я хотел бы сделать, это реализовать в подфайлах основного класса для логики Например:

Основным видом деятельности является просмотр поверхности.

class Battle extends SurfaceView implements SurfaceHolder.Callback {

Я хочу добавить всю логику, связанную с событиями касания, в файл с именем touchActions.java

public class touchActions extends Battle {

Похоже, что работает нормально, без ошибок в Eclipse. Но когда я пытаюсь запустить его на своем телефоне, я получаю исключение нулевого указателя для следующей строки.

if (_touch.checkHitBox(1)) {

_сенсорный вводится после объявления класса Битвы.

public touchActions _touch;

Каков правильный способ сделать это или что может вызвать нулевое исключение?

EDIT:

Цель здесь - организация кода, чтобы у меня не было одного гигантского файла кода. Могу ли я создать внутренний класс, все еще используя другой файл? Если вы знаете учебник, это тоже было бы здорово.

1 Ответ

2 голосов
/ 14 июня 2011

_touch инициируется после объявления класса Битвы.

public touchActions _touch;

не инициировано ... просто объявлено вам нужно инициализировать что-то вроде этого

_touch = new touchActions();

РЕДАКТИРОВАТЬ:

if public 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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...