diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java b/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java index 9098e98b25de91..2bb078bebd95cb 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java @@ -101,7 +101,7 @@ public class ReactEditText extends AppCompatEditText private @Nullable SelectionWatcher mSelectionWatcher; private @Nullable ContentSizeWatcher mContentSizeWatcher; private @Nullable ScrollWatcher mScrollWatcher; - private final InternalKeyListener mKeyListener; + private InternalKeyListener mKeyListener; private boolean mDetectScrollMovement = false; private boolean mOnKeyPress = false; private TextAttributes mTextAttributes; @@ -141,7 +141,9 @@ public ReactEditText(Context context) { mListeners = null; mTextWatcherDelegator = null; mStagedInputType = getInputType(); - mKeyListener = new InternalKeyListener(); + if (mKeyListener == null) { + mKeyListener = new InternalKeyListener(); + } mScrollWatcher = null; mTextAttributes = new TextAttributes(); @@ -452,6 +454,10 @@ public void setInputType(int type) { // We override the KeyListener so that all keys on the soft input keyboard as well as hardware // keyboards work. Some KeyListeners like DigitsKeyListener will display the keyboard but not // accept all input from it + if (mKeyListener == null) { + mKeyListener = new InternalKeyListener(); + } + mKeyListener.setInputType(type); setKeyListener(mKeyListener); }