我有一个视图组,允许用户以与Android主屏幕相同的方式滑动3 WebViews
(布局)。当用户按下后退按钮返回当前显示的WebView历史记录时,会出现问题。发生的事情是,历史记录将返回上次使用的3个视图中的任何一个,而不是当前显示的WebView ...
这是我的代码,当用户按下后退按钮时生效:
int backpress = 1;
Timer timer = new Timer();
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && WebView[0].canGoBack()) {
WebView[0].goBack();
return true;
}
if ((keyCode == KeyEvent.KEYCODE_BACK) && WebView[1].canGoBack()) {
WebView[1].goBack();
return true;
}
if ((keyCode == KeyEvent.KEYCODE_BACK) && WebView[2].canGoBack()) {
WebView[2].goBack();
return true;
}
else if(keyCode == KeyEvent.KEYCODE_BACK) {
backpress = (backpress + 1);
Toast.makeText(getApplicationContext(), " Press again to exit ", Toast.LENGTH_SHORT).show();
timer.schedule(new RemindTask(), 2000);
if (backpress>2) {
finish();
}
}
return false;
}
class RemindTask extends TimerTask {
@Override
public void run() {
backpress = 1;
}}
有没有办法获得当前关注的WebView,以便我可以解决这个问题?
答案 0 :(得分:1)
请参阅this question以从ViewPager
获取所选视图。覆盖活动中的onBackPressed
或onKeydown
,以便您手动处理后退并在所选视图上调用goBack
。