Android 安卓软键板碎片中的管理设备后退按钮
我在设备返回按钮中遇到一些问题。我正在创建一个片段,并使布局“可见”和“消失”,以逐步获得值。 比如,我没有创建5个片段,而是在片段上创建了5个片段,并利用布局的可见性来获得值。我有5个步骤(5个布局)。 现在我正试图控制设备的后退按钮。 布局有问题,其中包含EditText。如果我不点击Edittext,则后退按钮管理工作正常,但当我点击Edittext输入值,然后点击后退按钮时,它将退出片段。 我认为软键盘正在控制后退按钮。 行为应该是,当我点击后退按钮时,它将退出键盘,然后再次按下后退按钮,它不应该退出片段,它应该将控制权交给布局管理,我正在片段中执行的操作 下面是后退按钮管理的代码Android 安卓软键板碎片中的管理设备后退按钮,android,android-layout,android-fragments,android-edittext,onbackpressed,Android,Android Layout,Android Fragments,Android Edittext,Onbackpressed,我在设备返回按钮中遇到一些问题。我正在创建一个片段,并使布局“可见”和“消失”,以逐步获得值。 比如,我没有创建5个片段,而是在片段上创建了5个片段,并利用布局的可见性来获得值。我有5个步骤(5个布局)。 现在我正试图控制设备的后退按钮。 布局有问题,其中包含EditText。如果我不点击Edittext,则后退按钮管理工作正常,但当我点击Edittext输入值,然后点击后退按钮时,它将退出片段。 我认为软键盘正在控制后退按钮。 行为应该是,当我点击后退按钮时,它将退出键盘,然后再次按下后退按钮
@Override
public void onResume() {
super.onResume();
getView().setFocusableInTouchMode(true);
getView().requestFocus();
getView().setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KeyEvent.KEYCODE_BACK) {
if (genderLayout.getVisibility() == View.VISIBLE) {
Toast.makeText(getActivity(), "You wanna Exit the Fragment Here", Toast.LENGTH_LONG).show();
if (getActivity().getSupportFragmentManager().getBackStackEntryCount() > 1) {
getActivity().getSupportFragmentManager().popBackStack();
return true;
}
} else if (dobLayout.getVisibility() == View.VISIBLE) {
dobLayout.setVisibility(View.GONE);
genderLayout.setVisibility(View.VISIBLE);
return true;
} else if (heightLayout.getVisibility() == View.VISIBLE) {
heightLayout.setVisibility(View.GONE);
dobLayout.setVisibility(View.VISIBLE);
return true;
} else if (weightLayout.getVisibility() == View.VISIBLE) {
weightLayout.setVisibility(View.GONE);
heightLayout.setVisibility(View.VISIBLE);
return true;
} else if (excerciseLayout.getVisibility() == View.VISIBLE) {
excerciseLayout.setVisibility(View.GONE);
weightLayout.setVisibility(View.VISIBLE);
return true;
}
}
return false;
}
});
}
现在我如何管理布局的后退按钮,该布局上有Edittext