При нажатии в android Webview, как go вернуться к предыдущему заданию вместо закрытия приложения? - PullRequest
0 голосов
/ 27 января 2020

У меня есть приложение для веб-просмотра с MainActivity, которое загружает веб-сайт, и еще одно - Закладка активности / Список. В MainActivity есть кнопка для открытия списка закладок.

После открытия списка закладок, когда пользователь нажимает на ссылку из этого списка, он открывает / загружает в MainActivity.

Проблема в . После открытия ссылки из списка закладок, когда пользователь нажимает кнопку «Назад», отображается диалоговое окно с предупреждением о закрытии приложения. Код, который я использовал: ...

 @Override
public void onBackPressed()
{
    if(MyWebview.canGoBack()){
        MyWebview.goBack();
    }else{
        new AlertDialog.Builder(this)
                .setIcon(android.R.drawable.ic_dialog_alert)
                .setTitle("Exit!")
                .setMessage("Are you sure to close?")
                .setPositiveButton("Yes", new DialogInterface.OnClickListener()
                {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {

                        finish();
                    }
                })
                .setNegativeButton("No", null)
                .show();
    }
}

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

 @Override
public void onBackPressed()
{
    if(MyWebview.canGoBack()){
        MyWebview.goBack();
    }else{

        // If bookmark list is open in Back Stack, go to Bookmark List,
       // and if Bookmark List is not open, show the app closing warning dialogue. 

}

1 Ответ

0 голосов
/ 27 января 2020
   @Override
  public boolean onKeyDown(int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
    switch (keyCode) {
        case KeyEvent.KEYCODE_BACK:
            if (mWebView.canGoBack()) {
                mWebView.goBack();
            } else {
                show dialog();
            }
            return true;
    }

}
return super.onKeyDown(keyCode, event);
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...