Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.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的URL?_Android_Url_Webview_Android Sharing - Fatal编程技术网

Android 如何获取当前WebView的URL?

Android 如何获取当前WebView的URL?,android,url,webview,android-sharing,Android,Url,Webview,Android Sharing,我正在开发一个应用程序,用户可以在其中看到网络视图。有一个share FloatingAction按钮,用于共享指向Facebook或Whatsapp的链接 我正在使用导航抽屉活动。 WebView和FAB都位于content\u main.xml 在抽屉中选择每个选项时,WebView将相应加载 因此,为了获取URL,我使用了webView.getUrl()方法。但在运行应用程序时,每当我触摸共享晶圆厂时,应用程序强制关闭。没有这个方法,我可以继续,但我没有网址 我的代码是: WebView

我正在开发一个应用程序,用户可以在其中看到网络视图。有一个share FloatingAction按钮,用于共享指向Facebook或Whatsapp的链接

我正在使用导航抽屉活动。 WebView和FAB都位于
content\u main.xml
在抽屉中选择每个选项时,WebView将相应加载

因此,为了获取URL,我使用了
webView.getUrl()
方法。但在运行应用程序时,每当我触摸共享晶圆厂时,应用程序强制关闭。没有这个方法,我可以继续,但我没有网址

我的代码是:

WebView mywebView;
FloatingActionButton fab1 = (FloatingActionButton) findViewById(R.id.fab1);
    fab1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            /*Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                    .setAction("Action", null).show();*/
            String url;
            //url=myWebView.getOriginalUrl().toString();
            url=myWebView.getUrl().toString();
            String message = "Text I want to share.";
            Intent share = new Intent(Intent.ACTION_SEND);
            share.setType("text/plain");


            share.putExtra(Intent.EXTRA_TEXT, url);

            startActivity(Intent.createChooser(share, "Title of the dialog the system will open"));

        }
    });

提前感谢您的帮助。

首先,尝试将代码从匿名侦听器类提取到一个方法,然后调用该方法。其次,在调用任何方法之前,始终检查空指针。第三,不需要调用myWebView.getUrl().toString(),它与调用string.toString()一样无用

private WebView myWebView = super.findViewById(R.id.mywebViewId);

private void setFabListener() {

    FloatingActionButton fab1 = (FloatingActionButton) super.findViewById(R.id.fab1);
    fab1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
             doOnFabPressed();
        }
    });

}

private void doOnFabPressed() {

    if (this.myWebView != null) {

        String url = this.myWebView.getUrl();
        String message = "Text I want to share.";

        Intent share = new Intent(Intent.ACTION_SEND);
        share.setType("text/plain");
        share.putExtra(Intent.EXTRA_TEXT, url);

        super.startActivity(Intent.createChooser(share, "Title of the dialog the system will open"));

    }


}