当前位置:  开发笔记 > 编程语言 > 正文

Android:Fragment中的后退按钮OnKeyListener不起作用

如何解决《Android:Fragment中的后退按钮OnKeyListener不起作用》经验,为你挑选了1个好方法。

片段中的onKeyListener()现在不起作用.这是代码的一部分.

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment, null);
    ...

    view.setFocusableInTouchMode(true);
    view.requestFocus();
    view.setOnKeyListener(new View.OnKeyListener() {

        // true if the listener has consumed the event, false otherwise.
        // the key event happens twice, when pressing and taking off.
        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            if(keyCode == KeyEvent.KEYCODE_BACK && !touched) {
                Log.i(TAG, "onKey() method");
                touched = true;
                return true;
            } else {
                return false;
            }
        }
    });

    return view;
}

有什么我想念的吗?



1> rafsanahmad0..:

试试这个:

 @Override
public void onViewCreated(View view, Bundle savedInstanceState) {

    super.onViewCreated(view, savedInstanceState);
    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_DOWN) {
                if (keyCode == KeyEvent.KEYCODE_BACK) {
                     //go to previous fragemnt
                    //perform your fragment transaction here
                    //pass data as arguments
                    return true;
                }
            }
            return false;
        }
    });
}

推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有