如何停止edittext更改片段中后退按钮单击的焦点?

时间:2016-10-12 13:50:28

标签: android android-edittext back-button keyevent

当用户点击后退按钮时,我想清除edittext的焦点。

这是我的onResume方法: -

public void onResume() {
        super.onResume();

        getView().setOnKeyListener(new View.OnKeyListener() {
            @Override
            public boolean onKey(View view, int i, KeyEvent keyEvent) {
                if (i == keyEvent.KEYCODE_BACK) {
                    mEdtDob.clearFocus();
                    return true;
                }
                return false;

            }
        });

    }

当我点击后退按钮时,我想这样做,不应该改变edittext的焦点。

3 个答案:

答案 0 :(得分:0)

解决方案: 代码是正确的。检查 EditText的父视图是否可点击?如果不是,在删除焦点后,EditText可能会再次获得焦点。

将此行添加到xml:

中的 EditText的父视图
android:focusable="true"
android:focusableInTouchMode="true"

答案 1 :(得分:0)

@Override public void onBackPressed() { 
int count =    getFragmentManager().getBackStackEntryCount(); 
if (count == 0) { 
super.onBackPressed();
mEdtDob.clearFocus();
//additional code 
} else       {     getFragmentManager().popBackStack(); 
} }

检查此链接:

How to implement onBackPressed() in Fragments?

答案 2 :(得分:0)

只需在onKey Method.Code中添加这两行:

mEdtDob.setFocusable(true);
mEdtDob.setFocusableInTouchMode(true);

如果这是工作,请在评论中告诉我....