2017-05-23 18 views
0

私のフラグメントの移行は非常に奇妙に起こっています。バックボタンが押された時に、私は新しいフラグメントを開くしようとしています:Androidの断片onBackPressed

//removed code 

をその後、私は自宅フラグメントで午前とき、私の背中を押しせずに、再び、それはアプリケーションを閉じます。

// removed code 

Iあるフラグメントから別のフラグメントに切り替えるのが同じonKeyを共有する理由を理解していませんか?次のように振る舞うはずではありません:私はフラグメント2を押し、ホームフラグメントを開き、ホームフラグメントの中でもう一度押してから、アプリケーションを閉じます。

現在、これは次のように動作しています:フラグメント2のバックプレス、ホームフラグメントを開く、何も触らずに、ホームフラグメントのonKeyに入ります。

アイデア?前もって感謝します。

+0

ダウン投票者の心は説明するか? – guest176969

答えて

-1

終了呼び出しを削除する "getActivity()。finish();"試してみてください...

v.setFocusableInTouchMode(true); 
    v.requestFocus(); 
    v.setOnKeyListener(new View.OnKeyListener() { 
     @Override 
     public boolean onKey(View v, int keyCode, KeyEvent event) { 
      if(keyCode == KeyEvent.KEYCODE_BACK) { 
       getActivity().moveTaskToBack(true); 
       return true; 
      } else { 
       return false; 
      } 
     } 
    }); 

もし解決しない場合は、このメソッドを親アクティビティーに追加してください。

@Override 
public void onBackPressed() { 
FragmentManager fragmentmanager = getSupportFragmentManager(); 

if(fragmentmanager.getBackStackEntryCount() > 0){ 
     fragmentmanager.popBackStack(); 
    } else{ 
     finish(); 
    } 
} 
+0

フラグメント2のホームフラグメントを呼び出すと、それはまだそれ自身で終了します。 – guest176969

+0

大丈夫、なぜあなたはここに戻るタスクを使用していますか?親アクティビティーで行うこと –

+0

親アクティビティーに戻る前に、ホームフラグメントに戻すように設定したいので、 – guest176969