美文网首页
Framework返回在输入框有字串时变删除

Framework返回在输入框有字串时变删除

作者: 小磊长江大 | 来源:发表于2019-06-12 10:22 被阅读0次
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java
index 87e64bf5e64..ab3f48bbce5 100755
--- a/core/java/android/view/ViewRootImpl.java
+++ b/core/java/android/view/ViewRootImpl.java
@@ -70,6 +70,7 @@ import android.view.inputmethod.InputConnection;
 import android.view.inputmethod.InputMethodManager;
 import android.view.Surface.OutOfResourcesException;
 import android.widget.Scroller;
+import android.widget.EditText;
 
 import com.android.internal.R;
 import com.android.internal.os.SomeArgs;
@@ -3851,6 +3852,25 @@ public final class ViewRootImpl implements ViewParent,
             }
 
             // Deliver the key to the view hierarchy.
+            if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
+                Log.d("XIAOLEI", "back is press in " + mView);
+                if (mView instanceof ViewGroup)
+                {
+                    View v = ((ViewGroup) mView).findFocus();
+                    Log.d("XIAOLEI", "view is " + v);
+                    if (v != null && v instanceof EditText) {
+                        int start = ((EditText) v).getSelectionStart();
+                        int end = ((EditText) v).getSelectionEnd();
+                        Log.d("XIAOLEI", "start is " + start + ", end is " + end);
+                        if (end > 0) {
+                            KeyEvent newEvent = new KeyEvent(event.getDownTime(), event.getEventTime(), event.getAction(), KeyEvent.KEYCODE_DEL, event.getRepeatCount());
+                            mView.dispatchKeyEvent(newEvent);
+                                return FINISH_HANDLED;
+
+                        }
+                    }
+                }
+            }
             if (mView.dispatchKeyEvent(event)) {
                 return FINISH_HANDLED;
             }
(END)

相关文章

网友评论

      本文标题:Framework返回在输入框有字串时变删除

      本文链接:https://www.haomeiwen.com/subject/erdkfctx.html