Android Studio Ошибка получения: метод не переопределяет или не реализует метод из супертипа. После добавления проверьте код подключения к Интернету. - PullRequest
0 голосов
/ 05 мая 2018

Я только новичок в Android Studio и хочу проверить подключение к интернету, но постоянно получаю эту ошибку:

метод не переопределяет или не реализует метод из супертипа

После добавления проверьте код подключения к Интернету.

Полный код:

import android.net.NetworkInfo;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    WebView myWebView = (WebView) findViewById(R.id.webview);
    myWebView.loadUrl("this is my url");
    WebSettings webSettings = myWebView.getSettings();
    webSettings.setJavaScriptEnabled(true);

    myWebView.setWebViewClient(new WebViewClient() {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }
        **@Override
        public boolean isNetworkAvailable() {
            ConnectivityManager cm = (ConnectivityManager)  getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo networkInfo = cm.getActiveNetworkInfo();
            if (networkInfo != null && networkInfo.isConnected()) {
                return true;
            }
            return false;
        }**
    });


}
}

Я просто добавляю этот код, затем получаю ошибку:

@Override
        public boolean isNetworkAvailable() {
            ConnectivityManager cm = (ConnectivityManager)  getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo networkInfo = cm.getActiveNetworkInfo();
            if (networkInfo != null && networkInfo.isConnected()) {
                return true;
            }
            return false;
        }

Спасибо за помощь ...

Ответы [ 2 ]

0 голосов
/ 05 мая 2018

Это может решить вашу проблему:

import android.net.NetworkInfo;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    WebView myWebView = (WebView) findViewById(R.id.webview);
    myWebView.loadUrl("this is my url");
    WebSettings webSettings = myWebView.getSettings();
    webSettings.setJavaScriptEnabled(true);

    myWebView.setWebViewClient(new WebViewClient() {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }
    });
}


    public boolean isNetworkAvailable() {
        ConnectivityManager cm = (ConnectivityManager)  getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo networkInfo = cm.getActiveNetworkInfo();
        if (networkInfo != null && networkInfo.isConnected()) {
            return true;
        }
        return false;
    }
}
0 голосов
/ 05 мая 2018

Установка @Override для isNetworkAvailable() означает, что вы пытаетесь переопределить метод с WebViewClient. Но нет способа isNetworkAvailale() в WebViewClient. Вот почему вы получаете ошибку.

Удалите @Override, который сверху isNetworkAvailable(), следующим образом:

 myWebView.setWebViewClient(new WebViewClient() {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }

        public boolean isNetworkAvailable() {
            ConnectivityManager cm = (ConnectivityManager)  getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo networkInfo = cm.getActiveNetworkInfo();
            if (networkInfo != null && networkInfo.isConnected()) {
                return true;
            }
            return false;
        }
    });

Не забудьте добавить

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

в вашем AndroidManifest.xml

Кстати, не стоит помещать isNetworkAvailable() внутрь WebViewClient. Либо поместите его непосредственно под MainActivity, либо создайте другой класс (скажем, DeviceUtil). Если вы создадите новый класс DeviceUtil, этот код можно будет повторно использовать в различных действиях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...