Android WebView和shouldOverrideUrlLoading

Android WebView和shouldOverrideUrlLoading,android,webview,Android,Webview,我的代码: public class View_WebView extends Activity { WebView myWebView; private class MyWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if (ur

我的代码:

    public class View_WebView extends Activity  {
    WebView myWebView;

    private class MyWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            if (url.endsWith(".mp4")){
            Intent in = new Intent (Intent.ACTION_VIEW , Uri.parse(url));
            startActivity(in);
            return true;
        }
        else
            return false;
        }
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        myWebView = (WebView) findViewById(R.id.webview);
        myWebView.setWebViewClient(new WebViewClient());      
        myWebView.loadUrl("http://hdcast.pl");
    }     

}


    <?xml version="1.0" encoding="utf-8"?>
<WebView  xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/webview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
 />
公共类视图\u WebView扩展活动{
网络视图我的网络视图;
私有类MyWebViewClient扩展了WebViewClient{
@凌驾
公共布尔值shouldOverrideUrlLoading(WebView视图,字符串url){
if(url.endsWith(“.mp4”)){
Intent in=newintent(Intent.ACTION_视图,Uri.parse(url));
星触觉(in);
返回true;
}
其他的
返回false;
}
}
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
myWebView=(WebView)findViewById(R.id.WebView);
setWebViewClient(新的WebViewClient());
myWebView.loadUrl(“http://hdcast.pl");
}     
}
Eclipse编译正确,当我在智能手机上启动应用程序时,出现了一个错误:


“很遗憾,应用程序XX已停止”

您的Web视图为空,请取消注释此行:

myWebView = (WebView) findViewById(R.id.webview);
编辑:

XML中还必须有WebView元素

 <WebView  xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/webview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
 />

您没有正确使用它

您必须创建自己的自定义WebClient来扩展WebClient,并在其中根据需要使用shouldOverrideUrlLoading

然后将自定义WebClient添加到WebView,就可以开始了

myWebView.setWebViewClient(new MyWebViewClient());      
myWebView.loadUrl("XXX");
编辑:根据前面的答案,确保您正在使用
findViewById()初始化WebView
直接执行以下操作:

由此


请你把你的日志贴出来好吗?我的智能手机的入口被损坏了…你能在这里显示日志吗…对不起-链接不正确。是的…这是必须在此处给出nullpointer的主要原因..+1以查找主要问题..记住将webview添加到xml中,请正确查看我的editcompile,但在我的智能手机上仍然存在错误,新代码在我的第一篇文章中“很遗憾,应用程序XX已停止”,并且应用程序已关闭
myWebView.setWebViewClient(new MyWebViewClient());      
myWebView.loadUrl("XXX");
myWebView.setWebViewClient(new WebViewClient() {  
@Override  
public boolean shouldOverrideUrlLoading(WebView view, String url) {  
 if (url.endsWith(".mp4")){
    Intent in = new Intent (Intent.ACTION_VIEW , Uri.parse(url));
    startActivity(in);
    return true;
}
else
    return false;
}