Android: возможно ли иметь отдельный Java-файл для каждого действия? - PullRequest
0 голосов
/ 25 ноября 2010

Привет,

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

Любой совет с благодарностью.

Заранее спасибо,

Ответы [ 3 ]

1 голос
/ 25 ноября 2010

То, что вы пытаетесь сделать, невозможно (по крайней мере, чисто).

Чтобы обработать щелчок, вы должны реализовать один интерфейс (View.OnCLickListener). Я предполагаю, что нажатие в другом представлении вызовет ответ другого типа (т. Е. Одна кнопка может открыть всплывающее окно, а другая может начать действие).

Да, вы можете проверить идентификатор просмотра, по которому щелкнули, и решить, что делать, основываясь на этом ... но это выглядит ужасно!

Чтобы выполнить повторное использование кода, обычно я реализую все во внутреннем классе. Таким образом, я могу выбрать, что делать в каждом случае, только один раз.

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

1 голос
/ 25 ноября 2010

Для обработки событий есть интерфейс OnClickListener, вы можете создать свою собственную реализацию и использовать ее только там, где вы получаете кнопку, например, в onCreate ():

@Override
public void onCreate(Bundle savedInstance) {
  ...
  Button btn = (Button) findViewById(R.id.ok_button);
  btn.setOnClickListener(new onClickListener() {

     @Override
     public void onClick() {
       // the code
     }

}

Итак, вы ненужно создать отдельный файл вообще.

0 голосов
/ 02 апреля 2012

Я думаю, вам следует потратить немного времени на ознакомление с основами объектной ориентации, прежде чем идти дальше - вы оказываете себе медвежью услугу, потому что без базового понимания вы, вероятно, собираетесь написать массу кода, который в конце концов , не было бы необходимости, если бы у вас было базовое понимание. Возьмите начинающую книгу по Java или сделайте учебник или два онлайн - вы будете рады, что сделали это.

И я надеюсь, что вы не прислушиваетесь к моему совету: я просто говорю вам, что ваш вопрос говорит о том, что вы не знаете основ.

Теперь, чтобы ответить на ваш вопрос ... Вы хотите создать один класс, который реализует всю логику обработки общих событий (общий код означает только код, который будут использовать все действия ). Затем вы будете использовать этот общий обработчик событий из каждого из ваших классов деятельности, сделав ваши классы активности либо IS A EventHandlingClass, либо HAS A EventHandlingClass. Теперь вам нужно выяснить, что на самом деле означает IS A или ИМЕЕТ A , и когда вы это сделаете, у вас появится базовое понимание объектно-ориентированных языков.

Удачи!

Родня

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...