2012-03-24 7 views
0

私はユーザーがAndroidのホーム画面と同じ方法で3 WebViews(レイアウト)をスワイプできるビューグループを持っています。ユーザーが戻るボタンを押して現在表示されているWebViewの履歴に戻るときに問題が発生します。ViewGroup of WebViews履歴の問題

:何が起こるかというとここ

は、ユーザーが[戻る]ボタンを押したときに有効になる私のコードです...歴史は、現在表示され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を入手する方法はありますか?

+0

ギャラリーまたはビューページャーを使用していますか? – Gallal

+0

@Galal viewpager – David

答えて

1

ViewPagerから選択したビューを取得するには、this questionを参照してください。アクティビティにonBackPressedまたはonKeydownを上書きすると、手動でバックプレスを処理し、選択したビューでgoBackを呼び出すことができます。