Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Android WebView中包含BACK键_Android_Webview - Fatal编程技术网

如何在Android WebView中包含BACK键

如何在Android WebView中包含BACK键,android,webview,Android,Webview,我在这个网站、谷歌和另一个安卓论坛上到处寻找答案,但我找不到一个有效的 我试图在我的Android WebView应用程序中包含BACK键,因为否则BACK键将退出活动 @Override public void onBackPressed() { } 我是Android新手,所以我不知道如何编程。 有人能给我指一下正确的方向吗 谢谢 在活动中截取后退按钮,如下所示 public class MyWebActivity extends Activity { WebView webv

我在这个网站、谷歌和另一个安卓论坛上到处寻找答案,但我找不到一个有效的

我试图在我的Android WebView应用程序中包含BACK键,因为否则BACK键将退出活动

@Override
public void onBackPressed() {

}
我是Android新手,所以我不知道如何编程。 有人能给我指一下正确的方向吗


谢谢

活动中截取后退按钮,如下所示

public class MyWebActivity extends Activity {

    WebView webview;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // Other code here
        webview = new WebView(this);
    }

    // Other methods here

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) {
            webview.goBack();
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }
}

截取
活动
中的后退按钮的第9部分中解释如下

public class MyWebActivity extends Activity {

    WebView webview;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // Other code here
        webview = new WebView(this);
    }

    // Other methods here

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) {
            webview.goBack();
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }
}

的第9部分中进行了解释,例如,我正在通过Android在我的WebView中捕捉URL

在中,您的方法应覆盖以下内容:

public boolean shouldOverrideUrlLoading(WebView view, String url)
            {
                view.loadUrl(url);
                webView.getUrl();
                if( url.equals("http://any.com/url") ){
                   //Do any action
                    Toast tr =Toast.makeText(WebViewTest.this, "Test Passed", Toast.LENGTH_LONG);
                    tr.show();
                    //Go to other activity or you can put finish(); to stop the actual activity
                   //Do other action
                    Intent i1 = new Intent("com.mypack.courses.Passed");
                    startActivity(i1);;
                    return true;
                }
                if( url.equals("http://any.com/url") ){
                    Toast tr =Toast.makeText(WebViewTest.this, "Test Failed", Toast.LENGTH_LONG);
                    tr.show();

                   Intent i2 = new Intent("com.mypack.courses.Failed");
                   startActivity(i2);
                    return true;
                }
                return true;
            }

在这种情况下,如果用户在“”中单击http://any.com/url“在Webview上,我们可以做任何动作,只需输入你的条件或方法,无论你想在那里做什么,希望这能给你一些想法……

例如,我正在通过Android在我的Webview中捕捉下一个URL

在中,您的方法应覆盖以下内容:

public boolean shouldOverrideUrlLoading(WebView view, String url)
            {
                view.loadUrl(url);
                webView.getUrl();
                if( url.equals("http://any.com/url") ){
                   //Do any action
                    Toast tr =Toast.makeText(WebViewTest.this, "Test Passed", Toast.LENGTH_LONG);
                    tr.show();
                    //Go to other activity or you can put finish(); to stop the actual activity
                   //Do other action
                    Intent i1 = new Intent("com.mypack.courses.Passed");
                    startActivity(i1);;
                    return true;
                }
                if( url.equals("http://any.com/url") ){
                    Toast tr =Toast.makeText(WebViewTest.this, "Test Failed", Toast.LENGTH_LONG);
                    tr.show();

                   Intent i2 = new Intent("com.mypack.courses.Failed");
                   startActivity(i2);
                    return true;
                }
                return true;
            }

在这种情况下,如果用户在“”中单击http://any.com/url“在Webview上,我们可以执行任何操作,只需输入您的条件或方法,无论您想在哪里执行,希望这能为您提供想法……

在您的活动中覆盖onbackpressed

@Override
public void onBackPressed() {

}

如果您不想在back press上关闭活动,则只需删除super.onBackPressed(),这将不允许您完成活动,并且您的活动将在backpress上正常工作,而无需关闭。

在活动中覆盖onBackPressed

@Override
public void onBackPressed() {

}

如果您不想在back press上关闭活动,则只需删除super.onBackPressed(),这将不允许您完成活动,并且您的活动将在backpress上正常工作,而不关闭。

已回答:已回答:我对此有问题,但它看起来应该可以工作。当我将此代码放入活动时,您提供的代码的webview部分会出现错误。我尝试使用WebViewClient和MyWebViewClient使其工作(它们都已在我的代码中),但它所做的只是在.canGoBack()和.goBack()上给我另一个错误。有人有什么想法吗?@SMOKE:你看过我在回答中链接的教程了吗?在我上面的代码摘录中,
webview
webview
类的一个实例,而不是
WebViewClient
。在我的回答中查看我编辑的代码示例。它不再给我错误,但在测试应用程序后,它不起作用:(我添加了我的.Java活动供您查看。可能我的代码中有其他错误吗?更新:出于某种原因,我放在该网站上的活动代码被删除了。)(我对此有一个问题,但它看起来应该可以工作。当我将此代码放入“活动”时,您提供的代码的webview部分出现错误。我尝试使用WebViewClient和MyWebViewClient使其工作(它们都已在我的代码中),但它所做的只是在.canGoBack()和.goBack()上给我另一个错误。)。有人有什么想法吗?@SMOKE:你看过我在回答中链接到的教程吗?在我上面的代码摘录中,
webview
webview
类的一个实例,而不是
WebViewClient
。请在我的回答中查看我编辑的代码示例。它不再给我错误,但在测试应用程序后,它不起作用:(我添加了我的.Java活动供您查看。可能我的代码中有其他错误吗?更新:由于某种原因,我放在这个网站上的活动代码被删除了。)(