我在设备后退按钮中遇到了一些问题。我正在创建一个片段并使布局“VISIBLE”和“GONE”以逐步获取值。 喜欢而不是创建我在片段上创建的5个片段,并使用布局的可见性来播放值。我有5个步骤(5个布局)。 现在我正在尝试控制设备后退按钮。 有布局的问题,其中包含Editext。如果我没有触摸Editext,那么后退按钮管理工作正常但是当我点击Edittext输入值时,然后点击后退按钮它退出片段。 我认为软键盘正在控制后退按钮。 行为应该是当我点击后退按钮然后它将退出键盘,然后再次按下后退按钮,它不应该退出片段,它应该控制我在片段中进行的布局管理。 / p>
以下是后退按钮管理的代码。
@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。