Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.77
Kroshandowski
2 / 2 / 0
Регистрация: 05.04.2013
Сообщений: 234
#1

Как правильно вставить AlertDialog, если нет интернета? - Android

20.01.2015, 22:19. Просмотров 1796. Ответов 42
Метки нет (Все метки)

Здравствуйте!Как правильно вставить AlertDialog если нет интернета?
Т.е. я через webView (wv) гружу сайт и если есть инет,то все идет дальше и в wv грузится сайт. Если жк инет нет вылетает AlertDialog о том,что нужно включить инет и обновить страницу.

Я пробовал вот так,но у меня диалог на диалог лезет...даже если например инет включен,то AlertDialog лезет на ProgressDialog.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 webview = (WebView) findViewById(R.id.webView);
        webview.getSettings().setJavaScriptEnabled(true);
        webview.setWebViewClient(new WebViewClient() {
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }
            public void onLoadResource (WebView view, String url) {
                if (mProgressDialog == null) {
                    mProgressDialog = new ProgressDialog(Second.this);
                    mProgressDialog.setTitle("Открываем сайт");
                    mProgressDialog.setMessage("Пожалуйста подождите...");
                    mProgressDialog.show();
                }  else {
                    AlertDialog alertDialog = new AlertDialog.Builder(Second.this).create();
                    alertDialog.setTitle("Нет доступа в интернет!");
                    alertDialog.setMessage("Включите моб.данные и нажмите кнопку обновить);
                    alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int which) {
                            dialog.cancel();
                        }
                    });
                    alertDialog.show();
                }
            }
            public void onPageFinished(WebView view, String url) {
                if (mProgressDialog.isShowing()) {
                    mProgressDialog.dismiss();
                    mProgressDialog = null;
                }
            }
        });
        webview.loadUrl("http://google.ru");
    }
Заранее спасибо.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.01.2015, 22:19     Как правильно вставить AlertDialog, если нет интернета?
Посмотрите здесь:

Android AlertDialog Error
Android Не показывается AlertDialog
Как сделать AlertDialog со списком с цветными строками? Android
Потоки и AlertDialog Android
Custom AlertDialog Android
AlertDialog Android
Android Как сделать такое AlertDialog
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
20.01.2015, 23:02     Как правильно вставить AlertDialog, если нет интернета? #2
Странно проверять наличие доступа в "интернет" по инициализации mProgressDialog...

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
public static boolean isConnected(Context context) {
        ConnectivityManager cm = (ConnectivityManager) context
                .getSystemService(Context.CONNECTIVITY_SERVICE);
 
        NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
        if (activeNetwork != null && activeNetwork.isConnected()) {
            try {
                URL url = new URL("http://www.google.com/");
                HttpURLConnection urlc = (HttpURLConnection) url
                        .openConnection();
                urlc.setRequestProperty("User-Agent", "test");
                urlc.setRequestProperty("Connection", "close");
                urlc.setConnectTimeout(1000); // mTimeout is in seconds
                urlc.connect();
                if (urlc.getResponseCode() == 200) {
                    Toast.makeText(context, "Internet connection is Ok",
                    Toast.LENGTH_SHORT).show();
                    return true;
                } else {
                    Toast.makeText(context,
                    "Please, check your internet connection",
                    Toast.LENGTH_SHORT).show();
                    return false;
                }
            } catch (IOException e) {
                Toast.makeText(context, "Warning" + "\n"+
                "Error checking internet connection \n"+
                 e.toString(), Toast.LENGTH_SHORT).show();
                return false;
            }
        } else {
            Toast.makeText(context, "Check your network connection",
                    Toast.LENGTH_SHORT).show();
            return false;
        }
    }
Добавлено через 3 минуты
О..еще ж разрешение в манифест надо добавить тогда

XML
1
2
<uses-permission
            android:name="android.permission.ACCESS_NETWORK_STATE"/>
(с)пёрто где-то когда-то с stackoverflow...
Kroshandowski
2 / 2 / 0
Регистрация: 05.04.2013
Сообщений: 234
21.01.2015, 00:29  [ТС]     Как правильно вставить AlertDialog, если нет интернета? #3
Armagedo, Спасибо,но я не совсем понимаю как совместить эти два примера. К примеру если я уберу кусок AlertDialog из прогресса,то все идет как надо. И теперь нужно впихнуть кусок проверки инета из вашего кода и прикрутить к этому сообщение (можно и Toast,но лучше Alert) о том, что сайт не загрузился по причине отсутствия инета.
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
21.01.2015, 08:40     Как правильно вставить AlertDialog, если нет интернета? #4
Цитата Сообщение от Kroshandowski Посмотреть сообщение
AlertDialog лезет на ProgressDialog
Выключайте ProgressDialog через progressDialog.dismiss();
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
21.01.2015, 09:32     Как правильно вставить AlertDialog, если нет интернета? #5
Kroshandowski, я бы весь подход поменял. Написал бы проверку на наличие подключения, она выполняется мгновенно. Если подключения нет, дальше можно не грузить.
Дальше изучил бы AsyncTask, применил бы его. Затем во время загрузки рисовал бы progressDialog. По окончании убирал бы его и, может быть, выводил бы сообщение.
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
21.01.2015, 10:02     Как правильно вставить AlertDialog, если нет интернета? #6
Kroshandowski, в принципе CoolMind расписал всё как оно должно быть.

Цитата Сообщение от Kroshandowski Посмотреть сообщение
Спасибо,но я не совсем понимаю как совместить эти два примера
Так, а что непонятно?
Вместо проверки существует ли mProgressDialog проверяйте существует ли подключение к интернет в принципе

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public void onLoadResource (WebView view, String url) {
                if (isConnected()) {
                    mProgressDialog = new ProgressDialog(Second.this);
                    mProgressDialog.setTitle("Открываем сайт");
                    mProgressDialog.setMessage("Пожалуйста подождите...");
                    mProgressDialog.show();
                }  else {
                    AlertDialog alertDialog = new AlertDialog.Builder(Second.this).create();
                    alertDialog.setTitle("Нет доступа в интернет!");
                    alertDialog.setMessage("Включите моб.данные и нажмите кнопку обновить");
                    alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int which) {
                            dialog.cancel();
                        }
                    });
                    alertDialog.show();
                }
            }
Kroshandowski
2 / 2 / 0
Регистрация: 05.04.2013
Сообщений: 234
21.01.2015, 19:14  [ТС]     Как правильно вставить AlertDialog, если нет интернета? #7
CoolMind,Armagedo я где-то читал..по-моему на stackoverflow такой коммент (там чувак хотел сделать Asynctask в webview)
Don't use AsyncTask, as you are not in charge of loading the webview. If you want to show a progress dialog, here is how to do it.
И мало где можно найти примеры c AsyncTask...многие примеры содержат методы:
shouldOverrideUrlLoading
onLoadResource
onPageFinished

Может я чего-то не понимаю и это вполне легко сделать для тех,кто это уже полностью освоил или применял в своих приложениях.
Если идти по-порядку и собирать приложение по кускам вместе с вами,то думаю я получу,что изначально задумывалось.
Итак все возможные разрешения в манифесте уже есть.
Далее код который идет в onCreate:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.second);
        
        webview = (WebView) findViewById(R.id.webView);
        webview.getSettings().setJavaScriptEnabled(true);
        webview.setWebViewClient(new WebViewClient() {
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }
            public void onLoadResource (WebView view, String url) {
                if (mProgressDialog == null) {
                    mProgressDialog = new ProgressDialog(Second.this);
                    mProgressDialog.setTitle("Открываем сайт");
                    mProgressDialog.setMessage("Пожалуйста подождите...");
                    mProgressDialog.show();
                }
            }
            public void onPageFinished(WebView view, String url) {
                if (mProgressDialog.isShowing()) {
                    mProgressDialog.dismiss();
                    mProgressDialog = null;
                }
            }
        });
        webview.loadUrl("file:///android_asset/index.html");
    }
Т.е. данный код подразумевает открытие html файла (да,для загрузки данного файла нужен инет) в независимости от того есть интернет или нет.
Как предлагал Armagedo и CoolMind можно сделать проверку на определение инета еще ДО загрузки всего контента.
Переписываем onLoadResource:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public void onLoadResource (WebView view, String url) {
                if (isConnected()) {
                    mProgressDialog = new ProgressDialog(Second.this);
                    mProgressDialog.setTitle("Открываем сайт");
                    mProgressDialog.setMessage("Пожалуйста подождите...");
                    mProgressDialog.show();
                }  else {
                    AlertDialog alertDialog = new AlertDialog.Builder(Second.this).create();
                    alertDialog.setTitle("Нет доступа в интернет!");
                    alertDialog.setMessage("Включите моб.данные и нажмите кнопку обновить");
                    alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int which) {
                            dialog.cancel();
                        }
                    });
                    alertDialog.show();
                }
            }
Получается isConnected определяет включен ли инет.
Теперь сам метод isConnected. В каком месте он должен быть?В самом низу или внутри кода?
И что должно находится в методе public static boolean isConnected(Context context)?
Вроде бы все написал,в чем были вопросы.
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
21.01.2015, 20:11     Как правильно вставить AlertDialog, если нет интернета? #8
Цитата Сообщение от Kroshandowski Посмотреть сообщение
CoolMind,Armagedo я где-то читал..по-моему на stackoverflow такой коммент (там чувак хотел сделать Asynctask в webview)
Don't use AsyncTask, as you are not in charge of loading the webview. If you want to show a progress dialog, here is how to do it.
... даже как бы и логично...

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.second);
        
        webview = (WebView) findViewById(R.id.webView);
        webview.getSettings().setJavaScriptEnabled(true);
        webview.setWebViewClient(new WebViewClient() {
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }
            public void onLoadResource (WebView view, String url) {
                if ( isConnected(Second.this)) {
                    mProgressDialog = new ProgressDialog(Second.this);
                    mProgressDialog.setTitle("Открываем сайт");
                    mProgressDialog.setMessage("Пожалуйста подождите...");
                    mProgressDialog.show();
                }
            }
            public void onPageFinished(WebView view, String url) {
                if (mProgressDialog.isShowing()) {
                    mProgressDialog.dismiss();
                    mProgressDialog = null;
                }
            }
        });
        webview.loadUrl("file:///android_asset/index.html");
    }
 
public static boolean isConnected(Context context) {
        ConnectivityManager cm = (ConnectivityManager) context
                .getSystemService(Context.CONNECTIVITY_SERVICE);
 
        NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
        if (activeNetwork != null && activeNetwork.isConnected()) {
            try {
                URL url = new URL("http://www.google.com/");
                HttpURLConnection urlc = (HttpURLConnection) url
                        .openConnection();
                urlc.setRequestProperty("User-Agent", "test");
                urlc.setRequestProperty("Connection", "close");
                urlc.setConnectTimeout(1000); // mTimeout is in seconds
                urlc.connect();
                if (urlc.getResponseCode() == 200) {
                    Toast.makeText(context, "Internet connection is Ok",
                    Toast.LENGTH_SHORT).show();
                    return true;
                } else {
                    Toast.makeText(context,
                    "Please, check your internet connection",
                    Toast.LENGTH_SHORT).show();
                    return false;
                }
            } catch (IOException e) {
                Toast.makeText(context, "Warning" + "\n"+
                "Error checking internet connection \n"+
                 e.toString(), Toast.LENGTH_SHORT).show();
                return false;
            }
        } else {
            Toast.makeText(context, "Check your network connection",
                    Toast.LENGTH_SHORT).show();
            return false;
        }
    }
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
21.01.2015, 20:48     Как правильно вставить AlertDialog, если нет интернета? #9
Kroshandowski, согласен, тут я дал маху, забыл, что речь только о WebView.
Я имел в виду несколько другой метод для определения подключения, чем указал Armagedo, у меня в программе проверяется только подключение к Wi-Fi или сотовым сетям (без проверки наличия там Интернета). Пытался в своё время сделать нормальную проверку на наличие Интернета, выставлял таймаут, но это можно делать только в фоновом потоке.
Kroshandowski
2 / 2 / 0
Регистрация: 05.04.2013
Сообщений: 234
21.01.2015, 20:55  [ТС]     Как правильно вставить AlertDialog, если нет интернета? #10
Armagedo, в итоге полный код выглядит вот так:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.second);
        webview = (WebView) findViewById(R.id.webView);
        webview.getSettings().setJavaScriptEnabled(true);
        webview.setWebViewClient(new WebViewClient() {
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }
            public void onLoadResource (WebView view, String url) {
                if ( isConnected(Second.this)) {
                    mProgressDialog = new ProgressDialog(Second.this);
                    mProgressDialog.setTitle("Открываем сайт");
                    mProgressDialog.setMessage("Пожалуйста подождите...");
                    mProgressDialog.show();
                }   else {
                    AlertDialog alertDialog = new AlertDialog.Builder(Second.this).create();
                    alertDialog.setTitle("Нет доступа в интернет!");
                    alertDialog.setMessage("Включите моб.данные и нажмите кнопку обновить");
                    alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int which) {
                            dialog.cancel();
                        }
                    });
                    alertDialog.show();
                }
            }
            public void onPageFinished(WebView view, String url) {
                if (mProgressDialog.isShowing()) {
                    mProgressDialog.dismiss();
                    mProgressDialog = null;
                }
            }
        });
        webview.loadUrl("file:///android_asset/index.html");
    }
 
    public static boolean isConnected(Context context) {
        ConnectivityManager cm = (ConnectivityManager) context
                .getSystemService(Context.CONNECTIVITY_SERVICE);
 
        NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
        if (activeNetwork != null && activeNetwork.isConnected()) {
            try {
                URL url = new URL("http://www.google.com/");
                HttpURLConnection urlc = (HttpURLConnection) url
                        .openConnection();
                urlc.setRequestProperty("User-Agent", "test");
                urlc.setRequestProperty("Connection", "close");
                urlc.setConnectTimeout(1000); // mTimeout is in seconds
                urlc.connect();
                if (urlc.getResponseCode() == 200) {
                    Toast.makeText(context, "Internet connection is Ok",
                            Toast.LENGTH_SHORT).show();
                    return true;
                } else {
                    Toast.makeText(context,
                            "Please, check your internet connection",
                            Toast.LENGTH_SHORT).show();
                    return false;
                }
            } catch (IOException e) {
                Toast.makeText(context, "Warning" + "\n"+
                        "Error checking internet connection \n"+
                        e.toString(), Toast.LENGTH_SHORT).show();
                return false;
            }
        } else {
            Toast.makeText(context, "Check your network connection",
                    Toast.LENGTH_SHORT).show();
            return false;
        }
    }
Но когда я запускаю Second активити,то приложение вылетает и Logcat пишет:
01-21 17:50:08.324: ERROR/AndroidRuntime(742): FATAL EXCEPTION: main
java.lang.NullPointerException
at com.example.pimpim.Second$1.onPageFinished(Second.java:82)
at android.webkit.CallbackProxy.handleMessage(CallbackProxy.java:274)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3683)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
at dalvik.system.NativeStart.main(Native Method)
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
21.01.2015, 21:17     Как правильно вставить AlertDialog, если нет интернета? #11
Ну, возьмите контекст у WebView

Java
1
if ( isConnected(view.getContext()))
Kroshandowski
2 / 2 / 0
Регистрация: 05.04.2013
Сообщений: 234
21.01.2015, 21:39  [ТС]     Как правильно вставить AlertDialog, если нет интернета? #12
Armagedo, все равно приложение вылетает и та же ошибка в Logcat(((
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
21.01.2015, 21:46     Как правильно вставить AlertDialog, если нет интернета? #13
Давайте сюда код для onPageFinished
Kroshandowski
2 / 2 / 0
Регистрация: 05.04.2013
Сообщений: 234
21.01.2015, 21:51  [ТС]     Как правильно вставить AlertDialog, если нет интернета? #14
Armagedo,
Java
1
2
3
4
5
6
 public void onPageFinished(WebView view, String url) {
                if (mProgressDialog.isShowing()) {
                    mProgressDialog.dismiss();
                    mProgressDialog = null;
                }
            }
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
21.01.2015, 21:56     Как правильно вставить AlertDialog, если нет интернета? #15
Аааааа, пилятъ, не увидел...

А так?

Java
1
2
3
4
5
public void onPageFinished(WebView view, String url) {
                if ((mProgressDialog!=null)&&mProgressDialog.isShowing()) {
                    mProgressDialog.dismiss();
                    mProgressDialog = null;
                }
Kroshandowski
2 / 2 / 0
Регистрация: 05.04.2013
Сообщений: 234
21.01.2015, 22:10  [ТС]     Как правильно вставить AlertDialog, если нет интернета? #16
Armagedo, ААААААААААА ЗАРАБОТАЛО!!!!!!!!!!!!!!!!!!!!!!
Осталось два вопроса.
1)Когда я нажимаю OK на сообщении AlertDialog'a, мне приходится нажимать OK трижды. С первого раза диалог не пропадает.
2)mProgressDialog не появляется.
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
21.01.2015, 22:16     Как правильно вставить AlertDialog, если нет интернета? #17
Цитата Сообщение от Kroshandowski Посмотреть сообщение
Осталось два вопроса.
Шо? Опять? (с) м/ф "Жил-был пёс"
Kroshandowski
2 / 2 / 0
Регистрация: 05.04.2013
Сообщений: 234
21.01.2015, 22:26  [ТС]     Как правильно вставить AlertDialog, если нет интернета? #18
Цитата Сообщение от Armagedo Посмотреть сообщение
Шо? Опять? (с) м/ф "Жил-был пёс"
Нее...как бэ приложение работает и грузит содержимое html файлика,но без "плюшек" таких как прогресс диалог на предзагрузке и нормальное-одинарное нажитие кнопки ОК
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
21.01.2015, 22:29     Как правильно вставить AlertDialog, если нет интернета? #19
Давай весь код с самого начала объявления класса...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.01.2015, 22:56     Как правильно вставить AlertDialog, если нет интернета?
Еще ссылки по теме:

Android TextView а AlertDialog
Android Загрузка картинок Picasso из дискового кэша, когда нет интернета
Android Spinner в AlertDialog
Android AlertDialog и RadioGroup
Android Как менять message AlertDialog в зависимости от progress SeekBar?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Kroshandowski
2 / 2 / 0
Регистрация: 05.04.2013
Сообщений: 234
21.01.2015, 22:56  [ТС]     Как правильно вставить AlertDialog, если нет интернета? #20
Armagedo,
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
public class Second extends Activity {
 
    ProgressDialog mProgressDialog;
    WebView webview;
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.second);
        
        webview = (WebView) findViewById(R.id.webView);
        webview.getSettings().setJavaScriptEnabled(true);
        webview.setWebViewClient(new WebViewClient() {
 
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }
            public void onLoadResource (WebView view, String url) {
                if (isConnected(view.getContext())) {
                    mProgressDialog = new ProgressDialog(Second.this);
                    mProgressDialog.setTitle("Открываем сайт");
                    mProgressDialog.setMessage("Пожалуйста подождите...");
                    mProgressDialog.show();
                }   else {
                    AlertDialog alertDialog = new AlertDialog.Builder(Second.this).create();
                    alertDialog.setTitle("Нет доступа в интернет!");
                    alertDialog.setMessage("Включите моб.данные и нажмите кнопку обновить");
                    alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int which) {
                            dialog.cancel();
                        }
                    });
                    alertDialog.show();
                }
            }
 
            public void onPageFinished(WebView view, String url) {
                if ((mProgressDialog!=null)&&mProgressDialog.isShowing()) {
                    mProgressDialog.dismiss();
                    mProgressDialog = null;
                }
            }
        });
        webview.loadUrl("file:///android_asset/index.html");
    }
 
    public static boolean isConnected(Context context) {
        ConnectivityManager cm = (ConnectivityManager) context
                .getSystemService(Context.CONNECTIVITY_SERVICE);
 
        NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
        if (activeNetwork != null && activeNetwork.isConnected()) {
            try {
                URL url = new URL("http://www.google.com/");
                HttpURLConnection urlc = (HttpURLConnection) url
                        .openConnection();
                urlc.setRequestProperty("User-Agent", "test");
                urlc.setRequestProperty("Connection", "close");
                urlc.setConnectTimeout(1000); // mTimeout is in seconds
                urlc.connect();
                if (urlc.getResponseCode() == 200) {
                    Toast.makeText(context, "Internet connection is Ok",
                            Toast.LENGTH_SHORT).show();
                    return true;
                } else {
                    Toast.makeText(context,
                            "Please, check your internet connection",
                            Toast.LENGTH_SHORT).show();
                    return false;
                }
            } catch (IOException e) {
                Toast.makeText(context, "Warning" + "\n"+
                        "Error checking internet connection \n"+
                        e.toString(), Toast.LENGTH_SHORT).show();
                return false;
            }
        } else {
            Toast.makeText(context, "Check your network connection",
                    Toast.LENGTH_SHORT).show();
            return false;
        }
    }
}
Yandex
Объявления
21.01.2015, 22:56     Как правильно вставить AlertDialog, если нет интернета?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru