• Intercept back button from soft keyboard(从软键盘拦截后退按钮)


    onKeyDown() and onBackPressed() doesn't work for this case. You have to use onKeyPreIme.

    Initially, you have to create custom edit text that extends EditText. And then you have to implement onKeyPreIme method which controls KeyEvent.KEYCODE_BACK. After this, one back press enough for solve your problem. This solution works for me perfectly.

    CustomEditText.java

    public class CustomEditText extends EditText {
    
        Context context;
    
        public CustomEditText(Context context, AttributeSet attrs) {
            super(context, attrs);
            this.context = context;
        }
    
        @Override
        public boolean onKeyPreIme(int keyCode, KeyEvent event) {
            if (keyCode == KeyEvent.KEYCODE_BACK) {
                // User has pressed Back key. So hide the keyboard
                InputMethodManager mgr = (InputMethodManager)         
                    context.getSystemService(Context.INPUT_METHOD_SERVICE);
                mgr.hideSoftInputFromWindow(this.getWindowToken(), 0);
                // TODO: Hide your view as you do it in your activity
            }
            return false;
    }

    In your XML

    <com.YOURAPP.CustomEditText
         android:id="@+id/CEditText"
         android:layout_height="wrap_content"
         android:layout_width="match_parent"/>

    In your Activity

    public class MainActivity extends Activity {
       private CustomEditText editText;
    
       @Override
       public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
          editText = (CustomEditText) findViewById(R.id.CEditText);
       }
    }

    解决方案出版:
    http://stackoverflow.com/questions/3940127/intercept-back-button-from-soft-keyboard

  • 相关阅读:
    Md5密码加密
    Java Email 发送
    java 对象的修改
    修改表内部分字段根据查询而来 update select from
    转载:MySQL join on +多条件与where的区别
    反射机制
    转载-Java Nio
    Java 中的static
    springMVC的请求流程
    myEclipse 中的svn图标详解
  • 原文地址:https://www.cnblogs.com/aland/p/4936914.html
Copyright © 2020-2023  润新知