2011-01-24 6 views
3

Je veux savoir comment désactiver et activer le bouton de menu avant comme navigateur privé d'android.Je suis en train d'écrire une application où j'affiche 3 webviews et je veux intégrer les fonctionnalités de base des propres options de navigateur d'android. Tout fonctionne correctement à partir de maintenant. La seule chose est 'forward'menu item est toujours activé.J'ai mentionné conditoin aussi pour si canGoFwd puis goFwd. La chose est, je l'ai défini les éléments de menu séparément et écrit avant la fonction séparément, problème est en train de changer de façon dynamique les états pour le bouton « avant »android webview bouton avant

Répondre

4
private WebView webView; 

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

    webView = (WebView) findViewById(R.id.webView1); 
    webView.getSettings().setJavaScriptEnabled(true); 
    final Button previousButton =(Button) findViewById(R.id.previousButton); 

    previousButton.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 

       if(webView.canGoBack()){ 
        webView.goBack(); 
       } 
     } 
    }); 
    final Button forwardButton =(Button) findViewById(R.id.forwardButton); 

    forwardButton.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 

       if(webView.canGoForward()){ 
        webView.goForward(); 
       } 
     } 
    }); 
    webView.setWebViewClient(new WebViewClient() { 



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

     @Override 
     public void onPageFinished(WebView view, String url) { 

      super.onPageFinished(webView, url); 

      previousButton.setEnabled(view.canGoBack()); 
      forwardButton.setEnabled(view.canGoForward()); 

     } 

     @Override 
     public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { 

      super.onReceivedError(webView, errorCode, description, failingUrl); 
      Toast.makeText(WebViewActivity.this, description, Toast.LENGTH_LONG); 
     } 
    }); 
    webView.loadUrl(""); 

fichier webview.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 

    <WebView 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/webView1" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" /> 

    <Button 
     android:id="@+id/previousButton" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:enabled="false" 
     android:text="previous"/> 

    <Button 
     android:id="@+id/forwardButton" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_toRightOf="@+id/previousButton" 
     android:text="forward" 
     android:enabled="false" /> 
</RelativeLayout>