Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Rembo88
0 / 0 / 0
Регистрация: 05.10.2013
Сообщений: 39
#1

Создание суперкласса для всех Activity - Программирование Android

23.05.2015, 17:16. Просмотров 356. Ответов 4
Метки нет (Все метки)

Господа,доброго времени суток!
Возник следующий вопрос: у меня есть несколько активностей(activity1, activity2, activity3), каждая из них содержит по одному фрагменту(fragment1, fragment2, fragment3).
Возможно ли и имеет ли смысл создать некую супер-Activity с фрагментом, наследники которой смогут реализовывать свои специфичные activity+fragment ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.05.2015, 17:16
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создание суперкласса для всех Activity (Программирование Android):

Toolbar для всех activity - Программирование Android
Добрый день, дорогие форумчане. Сразу обмолвлюсь, что занимаюсь ровно 1-2 недели разработкой собственного некоммерческого приложения....

Создание фона для Activity - Программирование Android
Хочу создать фон для активити.. в дальнейшем буду его сжимать до xxxhdpi/xxhdpi/xhdpi/hdpi/mdpi/ldpi. Какое разрешение изображения мне...

Создание Activity в другом Activity - Программирование Android
Нормально ли создавать экземпляр какого-либо Activity в текущем Activity? Дело в том, что код, нужный для работы с данными находится в...

Создание Activity - Программирование Android
Добрый день! При создании нового проекта возникает проблема - Eclipse ту хочет создавать Activity с версией android 2.3.3. Пишет ошибку...

Создание нового Activity - Программирование Android
Прошел примерно день как скачал Android Studio, многому научился, и затупил как обычно на каком то нубском вопросе, отличие этого нубского...

Создание и вызов второго Activity - Программирование Android
Добрый день! Немного запутался с ООП в проекте суть в следующем: Имеем главное Activity: public class MainActivity extends...

4
Netscape
373 / 360 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
25.05.2015, 17:20 #2
А чем смысл такого подхода?
Можно создать одну активити и много фрагментов, потом их показывать в нужном порядке.
0
Tester64
396 / 357 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
25.05.2015, 19:40 #3
Цитата Сообщение от Rembo88 Посмотреть сообщение
Возможно ли и имеет ли смысл создать некую супер-Activity
Не знаю как с фрагментами (пока активно не использую), но идея не плохая! Я сделал себе "супер активити" чисто "под себя". Запихнул туда управление менюшками - не надо кучу лишних строк каждый раз писать. Встроил свою верхнюю панель своего дизайна. Встроил уловитель и обработчик ошибок... Теперь достаточно унаследовать и все мои активити имеют одинаковый дизайн и функциональность. И глобально расширять функциональность активити проще - не приходится после этого каждую активити перебирать. А когда активити больше 4х-5ти... и конечные активити не так захламлены получаются. Остается ТОЛЬКО необходимый код - читать проще.
0
YuraAAA
1576 / 1317 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
25.05.2015, 19:51 #4
Tester64, Вы всё правильно делаете
Но всё же лучше использовать фрагменты
0
Rembo88
0 / 0 / 0
Регистрация: 05.10.2013
Сообщений: 39
31.05.2015, 12:43  [ТС] #5
Ничего лучше не придумал как создать вот такой вот супер класс для Activity с одним фрагментом.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public abstract class BaseActivityWithOneFragment extends FragmentActivity {
 
    Fragment fragment;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(setActivityLayout());
 
        FragmentManager fragmentManager = getSupportFragmentManager();
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
        if (fragment != null) {
        fragment = initFragment();
        fragmentTransaction.add(setContainerForFragment(), fragment, "fragment");
        fragmentTransaction.commit();
        } else {
             Log.d("DEBUG", "В методе initFragment() не проинициализирован объект фрагмента")
        }
    }
    
    /** Класс-наследник должен вернуть разметку для Activity */
    protected abstract int setActivityLayout();
 
    /** Класс-наследник должен вернуть id контейнера,куда поместится фрагмент */
    protected abstract int setContainerForFragment();
 
    /** Класс-наследник должен вернуть объект фрагмента,который будет вешаться на Activity */
    protected abstract Fragment initFragment();
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.05.2015, 12:43
Привет! Вот еще темы с ответами:

Как сделать чтобы bluetooth соединение работало на всех activity? - Программирование Android
Подскажите как сделать чтобы bluetooth соединение работало на всех activity

Создание сервера, запускающего разные Activity - Программирование Android
Добрый день. Возникла такая проблема. Есть приложение под андроид, которое содержит MainActivity, в котором при создании запускается...

Динамическое создание элементов на другом activity - Программирование Android
В чем суть: Нажимаем кнопку в лэйауте1, после чего создается ImageButton на лэйауте2 и лэйаут2 открывается с созданной на нем кнопкой. В...

Создание выборочного activity при старте application - Программирование Android
Доброго времени суток! В приложении возможна регистрация. Когда юзер не зарегистрирован, то его при старте app перенаправляет на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Yandex
Объявления
31.05.2015, 12:43
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru