は、あなたの活動に、このメソッドを追加します。
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
if(this.getFragmentManager().getBackStackEntryCount() != 0){
this.getFragmentManager().popBackStack();
return true;
}
// If there are no fragments on stack perform the original back button event
}
return super.onKeyDown(keyCode, event);
}
を次にあなたが断片を変更されている場合、このん:
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(android.R.id.content, new YourFragmentName());
transaction.addToBackStack(null); // this is needed for the above code to work
transaction.commit();
そして、これを行うと、BACKボタンの動作を無効にする必要はありません。表示されているフラグメントは自動的に削除され、BACKを押すとバックスタックの次のフラグメントが自動的に表示されます。 –
これは私のために働いていません私はv4ライブラリを使用しています。 –
FragmentManager.popBackStack()はフラグメントをリロードします。 –