2012-03-24 73 views
0

我有一个视图组,允许用户以Android主屏幕相同的方式滑动3 WebViews(布局)。当用户按下后退按钮返回当前显示的WebView历史记录时,会出现问题。什么情况是历史会回去取的3次上次使用的,而不是当前所显示的WebView ...ViewGroup的WebViews历史问题

这里是我的代码生效,当用户按下后退按钮:

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

您是否在使用图库或viewpager? – Gallal 2012-03-24 17:26:07

+0

@Gallal viewpager – David 2012-03-24 17:30:37

回答

1

请参阅this question以从ViewPager获得选定的视图。在您的活动中覆盖onBackPressedonKeydown,以便您手动处理回按并在所选视图上呼叫goBack