Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
2 / 2 / 2
Регистрация: 29.09.2012
Сообщений: 444

Переключения между Layout и кнопка BackPressed

24.10.2017, 18:08. Показов 928. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте,

делаю программу, интерфейс состоит из одного activity и множества Layout с кнопками и тд..

Как сделать, чтобы по клику кнопки onBackPressed, программа закрывала открытые Layout в обратной последовательности?

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


Вот пример моего кода, и так для каждой кнопки интерфейса, уже трудно разбираться, а там будет в 20 раз больше)

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//Кнопка отмены сохранения маркера - X
    public void onButton_LL1_Otmena_1Click(View view) {
        RelativeLayout relativeLayout_LL1 = (RelativeLayout) findViewById(R.id.relativeLayout_LL1);
        relativeLayout_LL1.setVisibility(View.GONE);
        FloatingActionButton fab_2 = (FloatingActionButton) findViewById(R.id.fab_2);
        fab_2.setVisibility(View.VISIBLE);
        //скрываем прицел по центру экрана
        ImageView image_target_center = (ImageView) findViewById(R.id.target_center);
        image_target_center.setVisibility(View.INVISIBLE);
        //показываем панель МЕНЮ
        RelativeLayout relativeLayout_Menu = (RelativeLayout) findViewById(R.id.relativeLayout_Menu);
        relativeLayout_Menu.setVisibility(View.VISIBLE);
        //скрываем панель Инфо с полоской индикатором
        RelativeLayout relativeLayout_topIndicatEndInfo = (RelativeLayout) findViewById(R.id.relativeLayout_topIndicatEndInfo);
        relativeLayout_topIndicatEndInfo.setVisibility(View.INVISIBLE);
 
    }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.10.2017, 18:08
Ответы с готовыми решениями:

Кнопка переключения между 230 и 115 вольтами спалила БП. Может что еще?
Рассказываю вкраце... на системнике (нр) сзади есть кнопачка переключения между 230 и 115 вольтами... Ну я кароч не удержался и переключил....

Две окружности-светофор переезда. Кнопка переключения цвета. Поочередно мигают два фонаря
 Создать новый класс (классы) -наследник графического элемента и составить программу, используя любые фрагменты программ из раздела меню...

Переключения между формами
всем привет! вопрос: Form1 открывается при запуске программы, на Form1 нажимаю на кнопку, открывается Form2 (), в Form2 хочу изменить...

6
314 / 257 / 81
Регистрация: 31.10.2016
Сообщений: 619
24.10.2017, 19:27
Посмотрите в сторону библиотек Scoop или Conductor
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
24.10.2017, 19:31
или в сторону фрагментов
0
2 / 2 / 2
Регистрация: 29.09.2012
Сообщений: 444
26.10.2017, 10:44  [ТС]
С Scoop или Conductor хрен разберешься, примеров не нашел вообще.

Я думаю можно завести глобальную переменную int myFrag, где присваивать ей разные значение при изменении интерфейса.
И написать огромный метод для onBackPressed, типа если myFrag==1, то скрываем одни элементы, показываем другие,
если myFrag==2, то по другому, и тд. А интерфейс из главного xml вынести в разные xml для удобства, через include,
чтобы в глазах от кода не рябило.
0
13 / 15 / 5
Регистрация: 16.10.2016
Сообщений: 206
27.10.2017, 11:12
Цитата Сообщение от Cannon1 Посмотреть сообщение
Я думаю можно завести глобальную переменную int myFrag, где присваивать ей разные значение при изменении интерфейса.
И написать огромный метод для onBackPressed, типа если myFrag==1, то скрываем одни элементы, показываем другие,
если myFrag==2, то по другому, и тд
У меня сделано таким способом, работает нормально, просто сделайте функцию и запускайте ее в этом backpressed с нужными параметрами и все, будет проще
1
2 / 2 / 2
Регистрация: 29.09.2012
Сообщений: 444
27.10.2017, 15:20  [ТС]
Starikov
Это все хорошо, тоже так попробую, но меня всеравно напрягает что весь код программы пишется в одном классе MapsActivity. Я еще толком ничего не написал, только начал, а уже 600 строк кода. Дальше чувствую будет веселей с этой портянкой кода, рябящей в глазах..
0
314 / 257 / 81
Регистрация: 31.10.2016
Сообщений: 619
27.10.2017, 15:24
Cannon1, если не смогли разобраться, то давайте попроще опишу.
1. Заводите LinkedList<Pair<Integer, View>> viewStack;
2. Когда добавляете какую либо вьюшку в другую вьюшку, добавляете ее во viewStack
Java
1
viewStack.addLast(new Pair<Integer, View>(parentId, myAddedView));
3. Создаете метод который возвращает boolean:
3.1. Вытягиваете последний элемент в очереди viewStack.pollLast();
3.2. Если он Null возвращаете false
3.3. Если он NonNull то ищите view c parentId и удаляете там myAddedView
3.4. Возвращаете true
4. Переопределяете метод onBackPressed, в нем вызываете свой собственный метод. Если ваш метод вернул false, то следует вызывать super.onBackPresed() иначе - ничего не делать.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.10.2017, 15:24
Помогаю со студенческими работами здесь

Переключения между JPanel
Есть следующая структура файлов: (Скрин ниже). То есть есть главный JFrame и кучка Jpanel. Вопрос довольно простой, но до меня не доходит....

Переключения между окнами приложения
Здравствуйте! подскажите как сделать чтобы у запущенного приложения при вызове 2,3 и так далее формы между ними можно было переключаться...

Кнопки переключения между картинками
На форме имеются: pictureBox1, button1 и button2. Не получается сделать так, чтобы при нажатии на кнопку картинки менялись, в...

Пропала функция переключения графики между видеокартами
Здравствуйте. Помогите плиз. Не так давно случайно снес драйвер catalyst и обратно правильно его поставить не смог. Качал с оф сайта...

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


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". На примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных выбран регистр накопления, в. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru