在android Webview中按下时如何返回上一个任务而不是关闭应用程序?

问题描述 投票:0回答:1

我有一个具有MainActivity的webview应用程序,该应用程序正在加载网站,另一个是Bookmark Activity / List。 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. 

}
android android-activity webview back-button back-stack
1个回答
0
投票
   @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);
  }
© www.soinside.com 2019 - 2024. All rights reserved.