ViewGroup проблемы истории WebViews - PullRequest
0 голосов
/ 24 марта 2012

У меня есть группа просмотра, которая позволяет пользователям пролистывать 3 WebViews (макеты) так же, как домашний экран Android. Проблема возникает, когда пользователь нажимает кнопку «Назад», чтобы вернуться в текущую отображаемую историю WebView. Что произойдет, история вернется к тому, что из трех представлений использовалось последним, а не к отображаемому в данный момент 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, чтобы я мог решить эту проблему?

1 Ответ

1 голос
/ 24 марта 2012

См. этот вопрос , чтобы получить выбранный вид из ViewPager.Переопределите onBackPressed или onKeydown в своей деятельности, чтобы вы вручную обрабатывали обратные нажатия и вызывали goBack в выбранном виде.

...