[英]Open a link in a webview instead of default browser
我有這段代碼:
TextView noteView = (TextView) view.findViewById(R.id.content);
noteView.setMovementMethod(LinkMovementMethod.getInstance());
noteView.setText(Html.fromHtml(noteView.getText().toString()));
我需要在 webview 中打開鏈接,而不是在瀏覽器中...這可能嗎? 我能怎么做??
提前致謝..
另外,您可以這樣做。
package com.TextHtml;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.text.Html;
import android.text.Spannable;
import android.text.SpannableStringBuilder;
import android.text.method.LinkMovementMethod;
import android.text.style.ClickableSpan;
import android.text.style.URLSpan;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
public class TextHtml extends Activity {
private TextView tv;
static Context ctx=null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ctx=this;
tv = (TextView) findViewById(R.id.tv);
String htmlLinkText = "<a href="/" mce_href="/""http://www.google.com/"><u>hello google </u></a>";
tv.setText(Html.fromHtml(htmlLinkText));
tv.setMovementMethod(LinkMovementMethod.getInstance());
CharSequence text = tv.getText();
if(text instanceof Spannable){
int end = text.length();
Spannable sp = (Spannable)tv.getText();
URLSpan[] urls=sp.getSpans(0, end, URLSpan.class);
SpannableStringBuilder style=new SpannableStringBuilder(text);
style.clearSpans();//should clear old spans
for(URLSpan url : urls){
CustomerTextClick click = new CustomerTextClick(url.getURL());
style.setSpan(click,sp.getSpanStart(url),sp.getSpanEnd(url),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
tv.setText(style);
}
}
private static class CustomerTextClick extends ClickableSpan{
private String mUrl;
MyURLSpan(String url) {
mUrl =url;
}
@Override
public void onClick(View widget) {
// TODO Auto-generated method stub
Toast.makeText(ctx, "hello google!",Toast.LENGTH_LONG).show();
}
}
}
是的,你可以這樣做,使用 WebView 是非常簡單的任務,你需要聲明一個WebViewClient object 並覆蓋public boolean shouldOverrideUrlLoading (WebView view, String url)
提供一些自定義的功能,或者你可以過濾 URL。
在您的情況下,要繼續使用 WebView,您需要在該方法上返回 false。
看看這個教程。
問候
編輯:
看來您的問題是如何處理 TextView 的 url 上的點擊事件。 正如在這個問題上建議的那樣,您可以在包含活動的 WebView 上過濾ACTION_VIEW
意圖。 如果您需要有關意圖過濾器的更多指導,請查看此內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.