2011-12-26 17 views
6

Quiero establecer un título diferente para el cuadro de diálogo de alerta cuando la página WebView está cargada pero no funciona.cómo configurar títulos diferentes para el diálogo de alerta cuando se carga la página WebView?

aquí es el fragmento de código:

final AlertDialog.Builder alert = new AlertDialog.Builder(
     mContext); 
// alert.setTitle("Loading..."); 
final WebView wv = new WebView(mContext); 

wv.loadUrl("http://10.0.51.133/androidview/"); 
wv.getSettings().setJavaScriptEnabled(true); 
wv.setVerticalScrollBarEnabled(false); 

WebViewClientLoader loader= new WebViewClientLoader(alert); 
wv.setWebViewClient(loader); 
wv.setWebViewClient(new WebViewClient() { 

    @Override 
    public void onPageFinished(WebView view, String url) { 
     // TODO Auto-generated method stub 
     alert.setTitle("Loading..."); 
     super.onPageFinished(view, url); 
    } 

    @Override 
    public void onPageStarted(WebView view, String url, 
      Bitmap favicon) { 
     // TODO Auto-generated method stub 
     alert.setTitle("Finished"); 
     super.onPageStarted(view, url, favicon); 
    } 
}); 

private class webviewclient extends WebViewClient{ 

} 

wv.loadUrl("file:///android_asset/Like.html"); 
alert.setView(wv); 

alert.show(); 

Respuesta

21

Su perfectamente work..i de Publicación después de comprobar -------

public class MyActivity extends Activity{ 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    WebView web=new WebView(this); 
    web.setWebViewClient(new WebViewClient(){ 

     @Override 
     public void onLoadResource(WebView view, String url) { 
      super.onLoadResource(view, url); 
     } 

     @Override 
     public void onPageFinished(WebView view, String url) { 
      super.onPageFinished(view, url); 
      alert.setTitle("Pages Finished"); 
     } 

     @Override 
     public void onPageStarted(WebView view, String url, Bitmap favicon) { 
      super.onPageStarted(view, url, favicon); 
      alert.setTitle("Pages Started"); 
     } 

    }); 
    web.setWebChromeClient(new WebChromeClient(){ 

    }); 
    web.loadUrl("http://www.google.com"); 
    builder=new AlertDialog.Builder(this); 
    builder.setView(web); 
    builder.setTitle("Loading..."); 
    alert=builder.create(); 
    alert.show(); 
} 
AlertDialog alert; 
Builder builder; 
@Override 
protected void onDestroy() { 
    super.onDestroy(); 

} 

@Override 
protected void onPause() { 
    super.onPause(); 
} 

}

enter image description here

y luego cambia a

enter image description here

4

Basta utilizar el método setCustomTitle, cuando se crean OS empezar a cargar la vista web.

Luego, cuando onLoadCompleted, puede volver a poner CustomTitle en el segundo.

Aquí es el reference

2

ver este Ejemplo: THIS LINK

Después de implementar que usted tiene que establecer el valor diferente para el título de alerta basado en la ejecución. Por lo tanto, muestra los diferentes cuadros de diálogo basados ​​en la carga de Webview.

Consulte this example para saber cómo funciona y cómo implementarlo.

2

Creo que antes de llamar a alert.show(), usted shou ld llama alert.create(). Esto debería resolver su problema.

Cuestiones relacionadas