2010-02-23 16 views
5

Pracuję nad webview. Jeśli kliknę coś w moim webview, przekierowuje do innego łącza przy użyciu klasy webviewclient.Przycisk przewijania w tył i w przód dla wyświetlenia strony internetowej w systemie Android. w jaki sposób?

Teraz umieszczam stopkę zawierającą przycisk back i forward, aby wykonać funkcję, która w zwykłej przeglądarce.

Mogę pracować około back i forward z webview. To działa dobrze.

Teraz chcę ustawić przyciski w stopce początkowo nie powinny być skupione i powinny działać klikalnie i niemożliwie klikalne dynamicznie.

+1

Ciągle usunięcie i ponowne dodanie samo pytanie . Być może powinieneś przepisać to pytanie. Mogą być powody, dla których ludzie nie odpowiadają na twoje pytanie. Ja na przykład absolutnie nie mam pojęcia, co oznacza ostatnie zdanie. – CommonsWare

+0

, gdy przeglądarka ładuje się wewnętrznie, nie ma opcji forward (canGoForward()) lub backward (canGoBack()), nieprawdaż? następnie chcę ustawić te przyciski nie powinny być dostępne do ogniskowania lub klikalne. to wszystko kumpel. – Praveen

Odpowiedz

0

Jeśli układ jak

<?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/backButton" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" 
    android:enabled="false" 
    android:text="Back"/> 

<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" /> 

Teraz możemy realizować że tak ...

private WebView webView; 

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

//Web View Initialization 
webView = (WebView) findViewById(R.id.webView1); 
webView.getSettings().setJavaScriptEnabled(true); 

//Button Initialization 
final Button backButton =(Button) findViewById(R.id.backButton); 
final Button forwardButton =(Button) findViewById(R.id.forwardButton); 

//Back Button Action 
backButton.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View v) { 

      // Going back if canGoBack true 
      if(webView.canGoBack()){ 
       webView.goBack(); 
      } 
    } 
}); 
//Forward Button Action 
forwardButton.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     // Go Forward if canGoForward is frue 

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

     //Make Enable or Disable buttons 
     backButton.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("www.google.com");//Your url goes hare