0

WebViewsAndroid のホーム画面と同じように、ユーザーが 3 (レイアウト) をスワイプできるビュー グループがあります。ユーザーが戻るボタンを押して、現在表示されている WebView の履歴に戻ると、問題が発生します。何が起こるかというと、現在表示されている WebView ではなく、最後に使用された 3 つのビューの履歴が戻るということです...

ユーザーが戻るボタンを押したときに有効になる私のコードは次のとおりです。

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 を取得する方法はありますか?

4

1 に答える 1

1

から選択したビューを取得するには、この質問を参照してくださいViewPager。手動でバックプレスを処理し、選択したビューを呼び出すように、onBackPressedまたはアクティビティをオーバーライドします。onKeydowngoBack

于 2012-03-24T17:37:54.017 に答える