2016-02-21 2 views
0

Мой onPageFinished не стреляет. На @OverRide появится предупреждение «Method does not overwrite the Method in the superclass».onPageFinished не выполняется. «Метод не перезаписывает метод в суперклассе»

Я вставил соответствующий код. Помощь будет глубоко оценена.

public class MainActivity extends Activity { 
    private WebView mWebView; 
    private String typeOrientation = "landscape"; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     if (typeOrientation.equals("landscape")) 
      {   setContentView(R.layout.activity_main); 

     mWebView = (WebView) findViewById(R.id.activity_main_webview); 
     /* mWebView.setWebViewClient(new WebViewClient());*/ 
     mWebView.setWebChromeClient(new WebChromeClient() { 
      @Override 
      void onPageFinished(WebView view, String url) { 
       Toast.makeText(getApplicationContext(), "Logout", Toast.LENGTH_LONG).show(); 
       //hide loading image 
       findViewById(R.id.imageLoading1).setVisibility(View.GONE); 
       //show webview 
       findViewById(R.id.activity_main_webview).setVisibility(View.VISIBLE); 
      } 
     }); 

     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { 
      mWebView.setWebContentsDebuggingEnabled(true); 
     } 
     WebSettings webSettings = mWebView.getSettings(); 
     webSettings.setJavaScriptEnabled(true); 
     mWebView.addJavascriptInterface(this, "Android"); 
     mWebView.loadUrl("file:///android_asset/index.html"); 
    } 

ответ

1

onPageFinished не является частью WebChromeClient, поэтому вы не можете изменить его. Он относится к WebViewClient. Вы можете установить экземпляр, вызывающий setWebViewClient. Вы можете прочитать больше here. Пожалуйста, также известно, что правильная подпись

@Override 
public void onPageFinished(WebView view, String url) { 

с public в качестве спецификатора доступа.

+0

Теперь я получаю сообщение об ошибке: onPageFinished (WebView, String) в не может переопределить onPageFinished (WebView, String) в WebViewClient , пытаясь назначить более слабые права доступа; был публичным ' – user1517108

+0

Я отредактировал мой ответ. Вам не хватает 'public' перед' void' – Blackbelt

1

Вы использовали неправильный метод. Изменение в setWebViewClient():

mWebView.setWebViewClient(new WebViewClient() { 
     @Override 
     public void onPageFinished(WebView view, String url) {} 
    }); 
+0

Теперь я получаю сообщение об ошибке Ошибка: (62, 18) error: onPageFinished (WebView, String) в не может переопределить onPageFinished (WebView, String) в WebViewClient пытается назначать более слабые права доступа; был общедоступным ' – user1517108

+0

Почти правильно. пропустил публичный infront void :) – user1517108

+0

Я отредактировал ответ. –

Смежные вопросы