2010-11-09 3 views
0
WebView webView = new WebView(this);   
    webView.getSettings().setJavaScriptEnabled(true); 
    webView.getSettings().setUserAgentString("Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.7 (KHTML, like Gecko) Chrome/7.0.517.44 Safari/534.7"); 
    webView.setWebViewClient(new HelloWebViewClient()); 
    ProgressDialog dialog = ProgressDialog.show(this, "", 
        "Loading. Please wait...", true); 
    setContentView(webView); 
    webView.loadUrl("http://www.preisjaeger.at"); 
    dialog.cancel(); 

Почему ProgressDialog не отображается?ProgressDialog не отображается

ответ

1

CommonsWare прав о проблеме. Более конкретно, ваш вызов для загрузки контента в WebView происходит асинхронно (что хорошо - он не блокирует пользовательский интерфейс во время загрузки страницы). В результате ваш вызов для отмены диалога выполняется, не дожидаясь, когда loadUrl WebView фактически завершит свой сетевой вызов (что происходит в другом потоке). То, что вы, вероятно, захотите сделать, - это отключить загрузчик после завершения загрузки страницы и возврата к фоновому потоку; для примера того, как сделать это увидеть второй пример в WebView documentation, чтобы увидеть, как зе chromeclient WebView в с onProgressChanged вызова:

// Let's display the progress in the activity title bar, like the 
// browser app does. 
getWindow().requestFeature(Window.FEATURE_PROGRESS); 

webview.getSettings().setJavaScriptEnabled(true); 

final Activity activity = this; 
webview.setWebChromeClient(new WebChromeClient() { 
    public void onProgressChanged(WebView view, int progress) { 
    // Activities and WebViews measure progress with different scales. 
    // The progress meter will automatically disappear when we reach 100% 
    activity.setProgress(progress * 1000); 
    } 
}); 
webview.setWebViewClient(new WebViewClient() { 
    public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { 
    Toast.makeText(activity, "Oh no! " + description, Toast.LENGTH_SHORT).show(); 
    } 
}); 

webview.loadUrl("http://slashdot.org/"); 
+0

этот код принести мой телефон FreeZ: Мой используется код HTTP: // codeviewer .org/view/code: 13b9 – user422039

+0

Замораживание или крушение? И есть ли трассировка? Вы также создаете новый WebView, но, похоже, вы не привязываете его к своему расположению в любом месте, поэтому вы ничего не увидите. Вы должны либо быть findViewById-ов WebView из вашего макета XML, либо создать свой WebView и привязать его к корневой компоновке после факта. –

+0

Я хочу сделать это без xml .. – user422039

2

Вы отменили его до его появления. ProgressDialog.show() не будет даже начинать делать что-либо до после вы возвращаетесь от любого обратного вызова, к которому вы находитесь (например, onCreate()).

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