Java Android在webview中创建带有链接的toast

Java Android在webview中创建带有链接的toast,java,android,webview,Java,Android,Webview,当我在webview中单击一个url而不转到url时,如何查看toast,只显示toast消息 wv = (WebView) findViewById(R.id.wV); wv.loadData("<a href=\"#_ftn0\">[0]</a>", "text/html", "UTF-8"); if(OnClickedUrl == "#_ftn0") Toast.makeText(getApplicationContext(), OnClickedUrl, Toa

当我在webview中单击一个url而不转到url时,如何查看toast,只显示toast消息

wv = (WebView) findViewById(R.id.wV);
wv.loadData("<a href=\"#_ftn0\">[0]</a>", "text/html", "UTF-8");

if(OnClickedUrl == "#_ftn0")
Toast.makeText(getApplicationContext(), OnClickedUrl, Toast.LENGTH_LONG).show();
wv=(WebView)findviewbyd(R.id.wv);
wv.loadData(“,”text/html“,”UTF-8“);
如果(OnClickedUrl==“#u ftn0”)
Toast.makeText(getApplicationContext(),OnClickedUrl,Toast.LENGTH_LONG).show();

您可以创建一个shouldOverrideUrlLoading事件(请参阅链接以获取API参考),并将代码放在方法中。但是,您需要指定覆盖加载的url。如果要覆盖所有URL,只需删除
If
语句

wv.setWebViewClient( new WebViewClient() {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        //Make sure the url to override loading is the correct one
        if (url.contains("www.xxx.com")) {
            return true;
        }
        return false;
    }
    @Override
    public void onLoadResource(WebView  view, String  url){
        //Make sure the url to override loading is the correct one
        if (url.contains("www.xxx.com")) {
            //create toast message here
        }
    }
});

您应该覆盖url加载,如下所示:

wv.loadData("<a href=\"http://www.example.com/#_ftn0\">[0]</a>", "text/html", "UTF-8");

wv.setWebViewClient(new MyWebViewClient());

public class MyWebViewClient extends WebViewClient {
   @Override
   public boolean shouldOverrideUrlLoading(WebView view, String url) {
      Toast.makeText(getApplicationContext(), url, Toast.LENGTH_LONG).show();
      if(url.equal(urlyouclicked)){//here you compare the url you click 
          Toast.makeText(getApplicationContext(), OnClickedUrl, Toast.LENGTH_LONG).show();
      }
      return true;
   }
}
wv.loadData(“,“text/html”,“UTF-8”);
setWebViewClient(新的MyWebViewClient());
公共类MyWebViewClient扩展了WebViewClient{
@凌驾
公共布尔值shouldOverrideUrlLoading(WebView视图,字符串url){
Toast.makeText(getApplicationContext(),url,Toast.LENGTH_LONG.show();
如果(url.equal(urlyouclicked)){//这里比较您单击的url
Toast.makeText(getApplicationContext(),OnClickedUrl,Toast.LENGTH_LONG).show();
}
返回true;
}
}

除覆盖外,还应覆盖url。加载url时应匹配以下格式:“://”,否则它将不起作用。因此,您可以将“#u ftn0”修改为“示例:/#u ftn0”

从何处获取OnClickedUrl的值?
OnClickedUrl
仅作为示例。没有这样的事情只为了理解这个问题。我已经厌倦了
应该重写
但是当我点击
url时,无法获得任何反应。问题不是url,因为我正在尝试不带if块且不工作的代码。请尝试在
onLoadResource
中创建toast。当我访问onLoadResource获取toast消息但如何获取时,请在onLoadResource中指定if(url.equals(url))块,因为返回的资源url?编辑了代码,请尝试此操作是否有效。没有返回值,因为它是一个空的url。使url您单击的url是完整路径url非常奇怪,当我单击链接时没有反应?我也厌倦了无if博客。请尝试在shouldovrrideurloading toast.makeText(getApplicationContext(),url,toast.LENGTH_LONG).show()中的if条件之前调用下面的toast消息;您应该会看到您单击的完整路径url,然后使用if条件中显示的url
public boolean shouldOverrideUrlLoading(WebView视图,字符串url){Toast.makeText(getApplicationContext(),url,Toast.LENGTH_LONG)。show();return true;}
无反应:S