在android中,当从html字符串单击时,如何获取打开到webView的href链接?

在android中,当从html字符串单击时,如何获取打开到webView的href链接?,android,webview,Android,Webview,我正在将一个html字符串显示到包含一些链接的textview中,我正在借助以下代码显示该字符串: itemContent.setText(Html.fromHtml(jo.getString("itemContent"))); itemContent.setMovementMethod(LinkMovementMethod.getInstance()); 单击该链接可将我指向web浏览器并成功打开该链接,但我想将该链接打开到我的应用程序

我正在将一个html字符串显示到包含一些链接的textview中,我正在借助以下代码显示该字符串:

itemContent.setText(Html.fromHtml(jo.getString("itemContent")));
                            itemContent.setMovementMethod(LinkMovementMethod.getInstance());

单击该链接可将我指向web浏览器并成功打开该链接,但我想将该链接打开到我的应用程序的webView中。我怎么能这样做

我的方法是将textview的文本设置为url,然后单击use

myWebView.loadUrl(tV.getText().toString());

不要使用默认的LinkMovementMethod,而是让您自己的实现像

itemContent.setMovementMethod(new MovementMethod() {

        @Override
        public boolean onTrackballEvent(TextView widget, Spannable text,
                MotionEvent event) {
            // TODO: Do here what you want
            return false;
        }

        @Override
        public boolean onTouchEvent(TextView widget, Spannable text,
                MotionEvent event) {
            // TODO: Do here what you want
            return false;
        }

        @Override
        public void onTakeFocus(TextView widget, Spannable text, int direction) {
            // TODO: Do here what you want

        }

        @Override
        public boolean onKeyUp(TextView widget, Spannable text, int keyCode,
                KeyEvent event) {
            // TODO: Do here what you want
            return false;
        }

        @Override
        public boolean onKeyOther(TextView view, Spannable text, KeyEvent event) {
            // TODO: Do here what you want
            return false;
        }

        @Override
        public boolean onKeyDown(TextView widget, Spannable text, int keyCode,
                KeyEvent event) {
            // TODO: Do here what you want
            return false;
        }

        @Override
        public boolean onGenericMotionEvent(TextView widget, Spannable text,
                MotionEvent event) {
            // TODO: Do here what you want
            return false;
        }

        @Override
        public void initialize(TextView widget, Spannable text) {
            // TODO: Do here what you want

        }

        @Override
        public boolean canSelectArbitrarily() {
            // TODO: Do here what you want
            return false;
        }
    });
请参阅文档,从中找到最合适的方法…:)


希望这有帮助…

是的!!!我终于完成了我想要的。我使用了
webView
客户端来实现这一点。以下是我传递包含url的html字符串的方法:

@SuppressLint("SetJavaScriptEnabled")
    private void loadWebView(WebView webView,String htmlString)
    {
     try {

             final String mimeType = "text/html";
             final String encoding = "UTF-8";


                WebViewClient yourWebClient = new WebViewClient()
                {
                    // Override page so it's load on my view only
                    @Override
                    public boolean shouldOverrideUrlLoading(WebView  view, String  url)
                    {
                     // This line we let me load only pages inside  Webpage
                     if ( url.contains("") == true )
                        // Load new URL Don't override URL Link
                        return false;

                     // Return true to override url loading (In this case do nothing).
                     return true;
                    }
                };


                // Get Web view
                webView.getSettings().setJavaScriptEnabled(true);   
                webView.getSettings().setSupportZoom(true);       //Zoom Control on web (You don't need this 
                                                       //if ROM supports Multi-Touch      
                webView.getSettings().setBuiltInZoomControls(true); //Enable Multitouch if supported by ROM
                webView.setWebViewClient(yourWebClient);

                // Load URL
                webView.loadDataWithBaseURL("", htmlString, mimeType, encoding, "");

        } catch (Exception e) {
            e.printStackTrace();
        }

    }