【问题标题】:ViewGroup of WebViews History issueWebViews 历史记录问题的 ViewGroup
【发布时间】:2012-03-24 17:17:43
【问题描述】:

我有一个视图组,它允许用户以与 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 以便我可以解决这个问题?

【问题讨论】:

  • 您使用的是画廊还是浏览器?

标签: java android android-layout webview viewgroup


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-10
    • 1970-01-01
    • 1970-01-01
    • 2010-12-21
    • 2011-12-11
    • 2013-05-21
    • 2011-04-02
    相关资源
    最近更新 更多