2017-10-05 84 views
0

我希望webview在按下返回按钮时显示上一页我使用.canGoBack获取此完成但“.canGoBack”和“.GoBack”带下划线一条红线,宣布====webview .canGoBack显示为错误(红色)

“非静态方法‘canGoBack()’不能从静态上下文中引用”

任何帮助将是一件好事

继承人我主要活动的java

import android.app.Activity; 
 
import android.app.AlertDialog; 
 
import android.app.ProgressDialog; 
 
import android.content.DialogInterface; 
 
import android.graphics.Bitmap; 
 
import android.os.Bundle; 
 
import android.view.KeyEvent; 
 
import android.view.View; 
 
import android.webkit.WebChromeClient; 
 
import android.webkit.WebView; 
 
import android.webkit.WebViewClient; 
 

 
import static in.notherstore.notherstore.R.id.webView; 
 
import static in.notherstore.notherstore.R.id.webview; 
 

 
public class MainActivity extends Activity { 
 

 
    private ProgressDialog pd; 
 

 
    @Override 
 
    protected void onCreate(Bundle savedInstanceState) { 
 
     super.onCreate(savedInstanceState); 
 

 
     getWindow().getDecorView().setSystemUiVisibility(
 
       View.SYSTEM_UI_FLAG_LAYOUT_STABLE 
 
         | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 
 
         | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 
 
         | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION 
 
         | View.SYSTEM_UI_FLAG_FULLSCREEN 
 
         | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); 
 
     WebView webView = new WebView(this); 
 
     webView.setClickable(true); 
 
     webView.setFocusableInTouchMode(true); 
 
     webView.getSettings().setJavaScriptEnabled(true); 
 
     webView.loadUrl("http://www.notherstore.in"); 
 
     WebClientClass webViewClient = new WebClientClass(); 
 
     webView.setWebViewClient(webViewClient); 
 

 
     setContentView(webView); 
 
     pd = new ProgressDialog(MainActivity.this); 
 
     pd.setTitle("Loading Store"); 
 
     pd.setMessage("This may take several Minutes..."); 
 
     pd.show(); 
 
    } 
 

 
    public class WebClientClass extends WebViewClient { 
 

 
     @Override 
 
     public void onPageStarted(WebView view, String url, Bitmap favicon) { 
 
      super.onPageStarted(view, url, favicon); 
 

 

 
     } 
 

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

 

 

 
    } 
 
    @Override 
 
    public void onBackPressed() { 
 
     if (WebView.canGoBack()) { 
 
      WebView.goBack(); 
 
      return; 
 
     } 
 

 
     // Otherwise defer to system default behavior. 
 
     super.onBackPressed(); 
 
    } 
 
}

回答

2

您需要调用方法的引用(webView)通过,而不是WebView类 所以应该

@Override 
public void onBackPressed() { 
    if (webView.canGoBack()) { 
     webView.goBack(); 
     return; 
    } 
    // Otherwise defer to system default behavior. 
    super.onBackPressed(); 
} 

和移动外oncreate

WebView webView; 

OnCreate(..){ 
    //..code 
    webView = new WebView(this); 
    //.. more code 
} 
+0

制定出像德韦恩webView声明约翰逊星期六........谢谢@Pavneet – devdreamer

+0

@devdreamer我是很高兴我能帮助...快乐的工作 –

相关问题