Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 1
Регистрация: 29.09.2015
Сообщений: 16
1

Java,LibGdx,Android Studio обработка на телефоне события вернуться назад

25.11.2017, 23:27. Показов 1116. Ответов 3

Author24 — интернет-сервис помощи студентам
Мне нужна помощь в обработке события вернуться назад при нажатии на аппаратную кнопку
MainScreen->GameScreen->FirstGameScreen(например мы в такой последовательности открывали экраны)
У меня работает нормально только если я нажала и сразу же убрала(FirstGameScreen->GameScreen),а если я жму на кнопку как обычно,то он проскакивает несколько экранов(FirstGameScreen->MainScreen) или вообще выходит с приложения,НО если он выходит с приложения то пишет мол в приложении произошла ошибка

MainScreen
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
public class MainScreen implements Screen{
 
    final MyGame game;
    private Stage stage;
    private Stage stagegame;
 
    public MainScreen(final MyGame myGame {
        game=myGame;
        stage = new Stage(new ScreenViewport());
         .............
    }
...........
@Override
    public void render(float delta) {
        //очищаем экран и устанавлеваем цвет фона белым
        Gdx.gl.glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
        // если на телефоне нажата кнопка Back, то мы выходим из приложения
            if(Gdx.input.isKeyPressed(Input.Keys.BACK)){
                dispose();
                Gdx.app.exit();
             }
        //рисуем сцену
        stage.act();
        stage.draw();
 
    }
GameScreen
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
29
30
31
32
33
public class GameScreen implements Screen     {
 
    final MyGame game;
    private Stage stage;
 
 
    public GameScreen(final MyGame myGame) {
 
        game=myGame;
        stage = new Stage(new ScreenViewport());
        //устанавливаем сцену основным процессом
        Gdx.input.setInputProcessor(stage);
        final float width=stage.getWidth();
        ...............
   
     }
........
    @Override
    public void render(float delta) {
        //очищаем экран и устанавлеваем цвет фона белым
        Gdx.gl.glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
 
        // если на телефоне нажата кнопка Back, то мы вернемся в класс MainScreen
        if(Gdx.input.isKeyPressed(Input.Keys.BACK)){
            Gdx.input.setCatchBackKey(true);
            game.setScreen(new MainScreen(game));
            dispose();
        }
        //рисуем сцену
        stage.act();
        stage.draw();
    }
FirstGameScreen
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
29
30
31
32
public class TestScreen implements Screen {
 
    final MyGame game;
    private Stage stage;
 
 
    public TestScreen(final MyGame myGame) {
 
        game=myGame;
        stage = new Stage(new ScreenViewport());
        //устанавливаем сцену основным процессом
        Gdx.input.setInputProcessor(stage);
 
        final float width=stage.getWidth();
        final float height=stage.getHeight();
 
 
    }
 
  ......
    @Override
    public void render(float delta) {
        Gdx.gl.glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
 
        // если на телефоне нажата кнопка Back, то мы вернемся в класс GameScreen
        if(Gdx.input.isKeyPressed(Input.Keys.BACK)){
            Gdx.input.setCatchBackKey(true);
            game.setScreen(new GameScreen(game));
            dispose();
 
        }
Буду очень при очень благодарна за помощь)))))))

и может быть кто-нибудь знает как реализовать или делал кто,например на скринах, при нажатии на кнопку открывается полупрозрачный новое окно
Миниатюры
Java,LibGdx,Android Studio обработка на телефоне события вернуться назад   Java,LibGdx,Android Studio обработка на телефоне события вернуться назад  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.11.2017, 23:27
Ответы с готовыми решениями:

Java,LibGdx,Android Studio переместить картинку при нажатии на экране
Буду очень благодарна за помощь) Здравствуйте, короче , мне надо что бы я при нажатии на картинку...

Libgdx или android studio для создания текстового симулятора
Здравствуйте. В планах создать текстовый симулятор для андроида на подобии "Бомжары". что лучше для...

Android Studio как вернуться на предыдущую версию
Сегодня обновил студию с версии 3.0 до 3.1 Обновление прошло корректно, но перестали запускаться...

(Android studio, java) Ошибка при импорте библиотеки cannot resolve symbol android studio
Вот библиотека https://github.com/mik3y/usb-serial-for-android. Устанавливал так, File -> New ->...

3
1 / 1 / 0
Регистрация: 05.11.2017
Сообщений: 9
26.11.2017, 21:46 2
преопредели метод OnBackPressed
@Override
public void onBackPressed() {
if (mWebView.canGoBack()) {
mWebView.goBack();
}else {
super.onBackPressed();
}
}


Добавлено через 3 минуты
не то отправил вот:
Java
1
2
3
4
@Override
public void onBackPressed() {
 
}
главное после нужного действия указать
Java
1
super.onBackPressed();
что бы приложение закрылось
1
0 / 0 / 1
Регистрация: 29.09.2015
Сообщений: 16
26.11.2017, 22:20  [ТС] 3
что бы это сделать я должна свой класс extends Activity, но в libgdx я это сделать не могу
0
0 / 0 / 1
Регистрация: 29.09.2015
Сообщений: 16
02.12.2017, 18:00  [ТС] 4
я решила эту проблему(может кому-то в будущем понадобится)

MainScreen
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
29
30
public class MainScreen implements Screen{
 
    final MyGame game;
    private Stage stage;
    private Stage stagegame;
 
    public MainScreen(final MyGame myGame {
        game=myGame;
        stage = new Stage(new ScreenViewport());
         .............
    }
...........
@Override
    public void show() {
        Gdx.input.setCatchBackKey(true);
    }
@Override
    public void render(float delta) {
        //очищаем экран и устанавлеваем цвет фона белым
        Gdx.gl.glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
        // если на телефоне нажата кнопка Back, то мы выходим из приложения
            if(Gdx.input.isKeyPressed(Input.Keys.BACK)){           
                Gdx.app.exit();
             }
        //рисуем сцену
        stage.act();
        stage.draw();
 
    }
GameScreen
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
29
30
31
32
33
34
35
36
37
38
39
public class GameScreen implements Screen     {
 
    final MyGame game;
    private Stage stage;
 
 
    public GameScreen(final MyGame myGame) {
 
        game=myGame;
        stage = new Stage(new ScreenViewport());
        //устанавливаем сцену основным процессом
        Gdx.input.setInputProcessor(stage);
        final float width=stage.getWidth();
        ...............
   
     }
........
@Override
    public void show() {
         Gdx.input.setCatchBackKey(true);
    }
 
    @Override
    public void render(float delta) {
        //очищаем экран и устанавлеваем цвет фона белым
        Gdx.gl.glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
 
       // если на телефоне нажата кнопка Back, то мы вернемся в класс MainScreen
        if(Gdx.input.isKeyPressed(Input.Keys.BACK)){
            game.setScreen(new MainScreen(game));
            dispose();
        }
 
 
        //рисуем сцену
        stage.act();
        stage.draw();
    }
0
02.12.2017, 18:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.12.2017, 18:00
Помогаю со студенческими работами здесь

Theme на телефоне и в Android Studio отображается по разному
Скрин с телефона Скрин со студии Почему разное отображение темы? Манифест <?xml...

Android Studio. Векторные картинки отображаются неправильно в телефоне
Элементы в предпросмотре на компе стоят на своих местах, а при компиляции на мобилу элементы...

Обработка radiobutton android studio
Добрый день. Есть группа радиогруппа, в которой есть 4 радиокнопки. Подскажите, как проверять...

Обработка нескольких Spinner в Android Studio
Добрый день! Я только начинаю разбираться с программирование и назрел такой вопрос: в активити есть...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru