Повторное использование методов в различных действиях в Android - PullRequest
0 голосов
/ 04 октября 2011

Можно ли повторно использовать методы в разных видах деятельности?Скажем, например, у меня есть retrieveAllStudents() в StudentActivity.Могу ли я сделать это статическим или что-то еще и вызвать метод в ClassActivity?Или мне нужно дублировать метод в обоих действиях?

Какой из них правильный?

Пример 1:

StudentActivity

public static ArrayList<Student> retrieveAllStudents(){
    ...
    return studentList;
}

ClassActivity

import StudentActivity

ArrayList<Student> studentList= StudentActivity.retrieveAllStudents();

Пример 2:

StudentActivity

public static ArrayList<Student> retrieveAllStudents(){
    ...
    return studentList;
}

ClassActivity

public static ArrayList<Student> retrieveAllStudents(){
    ...
    return studentList;
}

ArrayList<Student> studentList= retrieveAllStudents();

Ответы [ 3 ]

1 голос
/ 04 октября 2011

Если это public static, это определенно доступно из других действий (и любого другого класса в вашем приложении). Однако когда действия вызывают функции друг на друга, это может привести к чрезмерно сложному коду. Рассмотрите возможность перемещения функции getStudent () и других общих функций в отдельный класс Student.

Редактировать да, можно использовать методы в других классах. Это очень распространено и считается лучшей практикой. Учитывая ваши два примера, первый является более правильным.

0 голосов
/ 23 февраля 2012

По моему мнению, лучшим подходом было бы создать класс (просто класс, но не Activity) с необходимыми методами, затем создать экземпляр этого класса общих методов в Activity и использовать методы, когда они вам нужны. ( Пример )

Другое решение состояло бы в том, чтобы расширить StudentActivity с ClassActivity, если они оба должны быть Activity, что здесь не так.

В любом случае, может быть, вам следует еще раз подумать, какими должны быть занятия в вашем приложении. Может быть полезно прочитать немного о деятельности . Затем я предлагаю использовать один из двух методов, описанных выше, в соответствии с вашими потребностями. Это предотвратит проблемы, вызванные удалением вашей активности из стека системой Android (вы также можете прочитать об активности жизненный цикл ).

Приветствия

0 голосов
/ 04 октября 2011

Если это универсальный метод, то оставьте его в классе приложения, создайте статический контекст класса приложения

public static Context getAppContext() { return context; };

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