@EnerG

WebView, вызов ProgressDialog и закрытие по окончании загрузки страницы?

В общем, мне необходимо выводить при открытии страницы индикатор загрузки, для этого я создал прогресс диалог
ProgressDialog.show(MainActivity.this, "",  "Загрузка. Пожалуйста подождите...", true);

и он выводится при открытии приложения, а закрывается после завершения загрузки
public void onPageFinished(WebView view, String url) {
progressDialog.dismiss();}

Открываю приложение, диалог выводится, на его фоне видна прогрузка страницы
после завершения загрузки, приложение крашится, вот лог

j_VoHLrBOmg.jpg
package com.application;
[Импорты]

private WebView webView;

    
    public void onCreate(Bundle savedInstanceState) {
		
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
	
		webView = (WebView) findViewById(R.id.webview);
		webView.getSettings().setJavaScriptEnabled(true);
		webView.loadUrl("http://site.ru/");
		
		ProgressDialog.show(MainActivity.this, "", 
 	             "Загрузка. Пожалуйста подождите...", true);

		
		// Страница ошибки
		webView.setWebViewClient(new WebViewClient() {
             
             public void onPageFinished(WebView view, String url) {
            	 progressDialog.dismiss();
               }  
		});


p.s: Надеюсь, доступно объяснил.
  • Вопрос задан
  • 4692 просмотра
Решения вопроса 1
@Toseter
Ну так progressDialog == null .

ProgressDialog.show(MainActivity.this, "", "Загрузка. Пожалуйста подождите...", true);
возвращает ProgressDialog.

Должно быть что то вроде этого

progressDialog = ProgressDialog.show(MainActivity.this, "", "Загрузка. Пожалуйста подождите...", true);
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
gadzhi15
@gadzhi15
public class MainActivity extends Activity {

    private WebView mWeb;

    private class WebViewer extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading (WebView view, String url)
        {
            view.loadUrl(url);
            return true;
        }
    }

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

       
        mWeb=(WebView)findViewById(R.id.web);


        mWeb.getSettings().setJavaScriptEnabled(true);

      
        mWeb.loadUrl("http://randevu05.ru/");

     
        mWeb.setWebViewClient(new WebViewer());

       ProgressDialog.show(MainActivity.this, "", "Загрузка. Пожалуйста подождите...", true);



        }

 
    @Override
    public void onBackPressed() {
        if (mWeb.canGoBack()) {
            mWeb.goBack();}
        else {
            super.onBackPressed();
        }
    }
}


Подскажите, как правильно завершить работу progreessDialog, когда страница загружена?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы