Android 应用程序退出,而不是导航到WebView中的上一页
你能告诉我为什么当我点击设备的“后退”按钮时应用程序会退出吗?我正在使用webview。我在点击该页面上的任何一个链接时会转到一个链接“one.link”,然后转到下一页。但当我按下“后退”按钮时,我的应用程序将退出。而不是转到上一页。这意味着它不支持历史记录 我们能做到吗 我使用了这个代码Android 应用程序退出,而不是导航到WebView中的上一页,android,Android,你能告诉我为什么当我点击设备的“后退”按钮时应用程序会退出吗?我正在使用webview。我在点击该页面上的任何一个链接时会转到一个链接“one.link”,然后转到下一页。但当我按下“后退”按钮时,我的应用程序将退出。而不是转到上一页。这意味着它不支持历史记录 我们能做到吗 我使用了这个代码Layout.xml <WebView android:id="@+id/webview" android:layout_width="fill_parent" android:la
Layout.xml
<WebView
android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
您需要重写
onBackPressed()
方法并自己实现历史导航
大概是这样的:
@Override
public void onBackPressed() {
if(browser.canGoBack()) {
browser.goBack();
} else {
super.onBackPressed();
}
}
WebView browser;
这适用于Android 2.2+,对于较旧的Android版本,覆盖
onKeyDown()
。您需要覆盖onBackPressed()
方法并自己实现历史导航
大概是这样的:
@Override
public void onBackPressed() {
if(browser.canGoBack()) {
browser.goBack();
} else {
super.onBackPressed();
}
}
WebView browser;
这适用于Android 2.2+,覆盖
onKeyDown()
适用于较旧的Android版本。默认情况下,活动假定已完成,因此这是默认行为,为了在back key press事件中执行自定义任务,您需要覆盖活动的此方法
@Override
public void onBackPressed() {
if(browser.canGoBack()){
//if we can go back, just go back
browser.goBack();
}else{
//let the parent handle it.
super.onBackPressed();
}
}
请确保将WebView设置为您的类字段,如下所示:
@Override
public void onBackPressed() {
if(browser.canGoBack()) {
browser.goBack();
} else {
super.onBackPressed();
}
}
WebView browser;
并在onCreate()中初始化它代码>
默认情况下,“活动”假定已完成,因此这是默认行为,为了在返回按键事件时执行自定义任务,您需要覆盖活动的此方法
@Override
public void onBackPressed() {
if(browser.canGoBack()){
//if we can go back, just go back
browser.goBack();
}else{
//let the parent handle it.
super.onBackPressed();
}
}
请确保将WebView设置为您的类字段,如下所示:
@Override
public void onBackPressed() {
if(browser.canGoBack()) {
browser.goBack();
} else {
super.onBackPressed();
}
}
WebView browser;
并在onCreate()中初始化它代码>
默认情况下,“后退”按钮就是这样工作的。它完成当前的活动。要返回tge History,您应该覆盖onBackPressed
@Override
public void onBackPressed()
{
if (webView.canGoBack())
{
webView.goBack();
}
else
{
super.onBackPressed();
}
}
默认情况下,“后退”按钮就是这样工作的。它完成当前的活动。要返回tge History,您应该覆盖onBackPressed
@Override
public void onBackPressed()
{
if (webView.canGoBack())
{
webView.goBack();
}
else
{
super.onBackPressed();
}
}
将此代码段复制到活动中
private WebView mWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mWebView=(WebView)findViewById(R.id.webview);
// Do other things
}
@Override
public void onBackPressed() {
//Check if the webview can go back
if (mWebView.canGoBack()) {
mWebView.goBack();
}else{
//This will finish the activity
super.onBackPressed();
}
}
将此代码段复制到活动中
private WebView mWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mWebView=(WebView)findViewById(R.id.webview);
// Do other things
}
@Override
public void onBackPressed() {
//Check if the webview can go back
if (mWebView.canGoBack()) {
mWebView.goBack();
}else{
//This will finish the activity
super.onBackPressed();
}
}
我认为,因为您在每个活动中都调用了finish(),所以请将其删除并重试。您应该查看此答案:&我认为,因为您在每个活动中都调用了finish(),所以请将其删除并重试。您应该查看此答案:&我如何实现此目标我如何实现此目标