如何通过WebView当前URL设置按钮可见性

时间:2019-07-13 12:37:51

标签: android android-layout android-webview

我尝试了很多次,以通过加载的webview网址更改按钮的不可见性。

仅当url等于“ http://trscript.net/index.php”时,我才希望设置为不可见。 我打印了url,它显示为“ http://trscript.net/index.php”,但没有任何变化。

代码在这里;

 public class MainActivity extends Activity {
        Button refresh;

        protected void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.activity_main);
              refresh=findViewById(R.id.refresh);
              myView = findViewById(R.id.web);

              myView.setWebViewClient(new WebViewClient() {
                                public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
                                    myView.loadUrl("file:///android_asset/no.html");

                                }


                                @Override
                                public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
                                    handler.proceed();
                                }



                                @Override
                                public void onPageFinished(WebView view, String url) {
                                    if(url=="http://trscript.net/index.php"){
                                        refresh.setVisibility(View.INVISIBLE);


                                    }
                                    else{
                                        refresh.setVisibility(View.VISIBLE);

                                    }
                                    dialog.dismiss();
                                }
                            }

}

1 个答案:

答案 0 :(得分:0)

在Java中,当在两个对象上使用==时,您实际上并没有在比较字符串本身。您需要使用.equals(String)。

==实际上是比较两个对象的引用,而不是它们的值。

string1.equals(字符串目标)根据字符串中的实际字符比较两个字符串。

请用以下代码替换您的两个字符串比较代码:

 if(url.equals("http://trscript.net/index.php")){
     refresh.setVisibility(View.INVISIBLE);
    }