在软件密钥板的android片段中管理设备后退按钮

时间:2017-02-13 17:33:16

标签: android android-layout android-fragments android-edittext onbackpressed

我在设备后退按钮中遇到了一些问题。我正在创建一个片段并使布局“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。

0 个答案:

没有答案