如果我启动像这样的全屏对话
FragmentManager fragmentManager = getActivity().getFragmentManager();
DialogStyleCreator editor = new DialogStyleCreator();
FragmentTransaction transaction = fragmentManager.beginTransaction();
transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
transaction.add(android.R.id.content, editor).commit();
如何点击android后退箭头(位于菜单的左上角)或后退按钮,它会关闭对话框,而不是像在警告对话框中那样返回上一个活动?
答案 0 :(得分:2)
您可以简单地将事务放在片段管理器的堆栈中并覆盖后退按钮的功能
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (Integer.parseInt(android.os.Build.VERSION.SDK) > 5
&& keyCode == KeyEvent.KEYCODE_BACK
&& event.getRepeatCount() == 0) {
// Simply pop back your fragment stack here
return true;
}
return super.onKeyDown(keyCode, event);
}
@Override
public void onBackPressed() {
// Simply pop back your fragment stack here
}
答案 1 :(得分:0)
由于您已将DialogFragment
添加为transaction.add(android.R.id.content, editor).commit();
,因此您可能无法选择收听解除回拨。
我建议你创建DialogFragment
实例并像
fm.beginTransaction().add(sampleDialog, "Dialog").commit();
并设置活动后退按钮的回调界面点击并致电dismiss();