2012-10-24 4 views
9

をユーザーの操作に基づいて動的にActivityに追加します。戻るキーを押すと、フラグメントがポップされます。しかし、最初にスタックに追加されたフラグメントのバックキーを押すと、 'Activity'に空のレイアウトが表示されます。私はこのアクティビティでこの時点でfinish()を呼び出して消滅させたいと思います。私は試しました:最後のフラグメントがポップされたときのハンドルバックキー

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    super.onKeyDown(keyCode, event); 
    if(keyCode == KeyEvent.KEYCODE_BACK){ 
     if(getFragmentManager().getBackStackEntryCount()==0){ 
      finish(); 
      return true; 
     } 
    } 
    return true; 
} 

しかし、これはバックキーの機能をブロックする効果があります。正しい方向のポインターは感謝しています。

答えて

5

return true;return false;に変更して、キー押しを処理しなかったことを示します。これは、バックスタックが空の場合はアクティビティを終了し、それ以外の場合はそのままにしておく必要があります。

+0

ありがとうございました。これとgetBackStackEntryCount()== 1がトリックを行いました。 –

6

最初のフラグメントはどこに追加しますか?そのトランザクションをバックスタックに追加しないでください。必要な方法で動作するはずです。

+0

シンプルで効果的です。ちょうど私がそれが欲しかった方法で動作します。ありがとう! – MrMaffen

関連する問題