首先,我真的不知道有關Java的任何事情。我做前端開發,這就是真的,我試圖通過尋找文檔和教程,但我有問題..我有一個網站,我試圖讓它在Android上運行。我除了回壓在Android設備上幾乎所有工作退出應用程序(這是從我讀過預期)後退按鈕的Android的WebView
@Override
public void onBackPressed() {
if (WebView.canGoBack()) {
WebView.goBack();
} else {
super.onBackPressed();
}
}
是什麼,我嘗試添加到我的代碼,但我得到的錯誤:
Error:(45, 24) error: non-static method canGoBack() cannot be referenced from a static context
Error:(46, 24) error: non-static method goBack() cannot be referenced from a static context
Error:(48, 22) error: cannot find symbol method onBackPressed()
Error:(43, 9) error: method does not override or implement a method from a supertype
許多在此先感謝!
P.S - 下面是完整的代碼。
package com.appname.appname;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.view.KeyEvent;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView myWebView = (WebView) findViewById(R.id.myWebView);
myWebView.loadUrl("http://www.website.com");
myWebView.setWebViewClient(new MyWebViewClient());
//Settings
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
}
private class MyWebViewClient extends WebViewClient {
//Open links internally
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (Uri.parse(url).getHost().equals("www.website.com")) {
return false;
}
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent);
return true;
}
//Back Button Fix
@Override
public void onBackPressed() {
if (WebView.canGoBack()) {
WebView.goBack();
} else {
super.onBackPressed();
}
}
}
}
謝謝。
編輯:我也試過這個代碼,我在另一疊後發現。
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
if (WebView.canGoBack()) {
WebView.goBack();
} else {
finish();
}
return true;
}
}
return super.onKeyDown(keyCode, event);
}
有人告訴我,在教程中按Ctrl + O(在Android Studio中),並選擇一個的onkeydown覆蓋,但這不是我的列表。然後我發現onKeyDown用於pre 2.0手機?所以我試圖尋找onBackPressed,但我也找不到。我知道這將是東西很容易..
這個答案將幫助您http://stackoverflow.com/a/6077173/343679 – Sharj