2011-12-26 4 views
6

Desidero impostare un titolo diverso per la finestra di dialogo di avviso quando la pagina WebView è caricata ma non funziona.come impostare un titolo diverso per la finestra di avviso quando viene caricata la pagina WebView?

Ecco il frammento di codice:

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(); 

risposta

21

Il suo perfettamente work..i metto dopo aver controllato -------

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

e poi si trasforma in

enter image description here

4

Devi solo usare il metodo setCustomTitle, quando crea os iniziano a caricare il WebView.

Quindi, quando onLoadCompleted, è possibile impostare nuovamenteCustomTitle sul secondo.

Ecco la reference

2

vedere questo esempio: THIS LINK

Dopo l'implementazione che si deve impostare il valore diverso per il titolo avviso in base all'esecuzione. Quindi mostra la finestra di dialogo diversa basata sul caricamento della pagina Web.

Vedere this example per come funziona e come implementarlo.

2

Penso che prima di chiamare alert.show(), si shou ld chiama alert.create(). Questo dovrebbe risolvere il tuo problema.