Как реализовать нажатие кнопки назад во фрагменте в котором находится WebView?

167
07 июня 2018, 10:20

Проблема в том что реализовать реализовал, но из приложения не выходит.

Код из MainActivity:

@Override 
    public void onBackPressed() { 
        FragmentManager fm = getSupportFragmentManager(); 
        OnBackPressedListener backPressedListener = null; 
        for (Fragment fragment: fm.getFragments()) { 
            if (fragment instanceof  OnBackPressedListener) { 
                backPressedListener = (OnBackPressedListener) fragment; 
                break; 
            } 
        } 
 
        if (backPressedListener != null) { 
            backPressedListener.onBackPressed(); 
        } else { 
            super.onBackPressed(); 
        } 
    }

Интерфейс:

public interface OnBackPressedListener { 
    public void onBackPressed(); 
}

И мой фрагмент:

@Override 
    public void onBackPressed() { 
        webView.goBack(); 
    }

Может кто нибудь сталкивался с такой задачей? Или есть какие идеи?

Answer 1

Методом canGoBack() проверяем есть ли у WebView предыдущая страница и переходим, если нет закрываем активность.

@Override
public void onBackPressed() {
    if(webView.canGoBack())
        webView.goBack();
    else
        getActivity().finish();
}
READ ALSO
Play framework подождать выполнение нескольких задач (CompletableFuture.allOf)

Play framework подождать выполнение нескольких задач (CompletableFuture.allOf)

Разбираюсь с фреймворком playНеобходимо сделать несколько запросов в БД, и по результатам их выполнения сделать бизнес логику

182
Относительный путь (алгоритм)

Относительный путь (алгоритм)

Одному знакомому дали такое задание на экзамене:

203
Проблемы с генерированием апк

Проблемы с генерированием апк

На устройстве занимался отладкой приложенияЗатем удалил его

187